riceman0
asked on
How to make raw bitmap data usable
Hello, I have some camera hardware that -- using the provided sample code -- I am able to use their functions to pull raw data out of (it says that it is in RGB24 format) and there is some other code that seems to create a corresponding BITMAPINFOHEADER structure. But I don't know how to turn this into something I can use. To clarify, below is the code.
which apparently returns the image data in the BitmapFrame array, and then it creates a standard BITMAPINFOHEADER structure with the following
and then it does some other things with this data (feeds it into its own functions) that are not useful to me. what I need to do is stop it here, and turn the data into my own .NET System.Drawing.Bitmap object so that I can do whatever I want with it.
But so far I have not been able to string together the code to convert the raw byte array, that apparently matches up with this BITMAPINFOHEADER, into my own .NET bitmap. Does anyone have any suggestions?
Thanks VERY much in advance.
Structure LUCAM_FRAME_FORMAT
Dim xOffset As Integer
Dim yOffset As Integer
Dim width As Integer
Dim height As Integer
Dim pixelFormat As Integer
Dim subSampleX As Short
Dim flagsX As Short
Dim subSampleY As Short
Dim flagsY As Short
End Structure
Public FrameFormat As LUCAM_FRAME_FORMAT
Public BitmapFrame() As Byte
...
LucamGetFormat(hCamera, myFrameFormat, FrameRate)
ret = LucamConvertFrameToRgb24(hCamera, BitmapFrame, MyFrame, FrameFormat.width, FrameFormat.height, FrameFormat.pixelFormat, Conversion)
which apparently returns the image data in the BitmapFrame array, and then it creates a standard BITMAPINFOHEADER structure with the following
Dim bmpInfo As BITMAPINFOHEADER
' Display captured frame
bmpInfo.biBitCount = 24
bmpInfo.biClrImportant = 0
bmpInfo.biClrUsed = 0
bmpInfo.biCompression = 0 ' BI_RGB
bmpInfo.biHeight = FrameFormat.height
bmpInfo.biPlanes = 1
bmpInfo.biSize = 40 ' SizeOf(BITMAPINFOHEADER)
bmpInfo.biSizeImage = FrameFormat.width * FrameFormat.height * 3
bmpInfo.biWidth = FrameFormat.width
bmpInfo.biXPelsPerMeter = 0
bmpInfo.biYPelsPerMeter = 0
and then it does some other things with this data (feeds it into its own functions) that are not useful to me. what I need to do is stop it here, and turn the data into my own .NET System.Drawing.Bitmap object so that I can do whatever I want with it.
But so far I have not been able to string together the code to convert the raw byte array, that apparently matches up with this BITMAPINFOHEADER, into my own .NET bitmap. Does anyone have any suggestions?
Thanks VERY much in advance.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
That gave me enough ammunition to post a question back to the vendor, thanks.