Ich habe ein jpg mit GetDIBits_ pder Pointer in ein Array ausgelesen und möchte dieses weiterverarbeiten, leider habe ich bei der Überprüfung gesehen, dass es nicht richtig funktioniert. Das Bild wird verzerrt angezeigt und die Farbe rot scheint zu fehlen, zumindest ist eine rote Rose bzw. das Gewirr, dort wo sie sein müsste, jetzt blau.
Hat jemand eine idee?
Code: Alles auswählen
Procedure CopyImageToMem(Img.l, mem.l)
Protected bmi.BITMAPINFO
Protected w.l, h.l, hBmp.l, hDC.l
w = ImageWidth(Img)
h = ImageHeight(Img)
hBmp = ImageID(Img)
bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
bmi\bmiHeader\biWidth = w
bmi\bmiHeader\biHeight = -h
bmi\bmiHeader\biPlanes = 1
bmi\bmiHeader\biBitCount = 32
bmi\bmiHeader\biCompression = #BI_RGB
hDC = StartDrawing( ImageOutput(Img) )
If GetDIBits_(hDC, hBmp, 0, h, mem, bmi, #DIB_RGB_COLORS)
StopDrawing()
ProcedureReturn #True
Else
StopDrawing()
ProcedureReturn #False
EndIf
EndProcedure