Danke du bist wirklich hilfsbereit.. ohne den unnötigen Schnick,schnack Drumherum
Ich hatte die Funktion ja schon geschrieben
Delphi-Quellcode:
var
size: Integer;
header: BITMAPINFOHEADER;
pHeader: Pointer;
begin
if Assigned(PpixelDataArr) then
SafeArrayDestroy(PpixelDataArr);
if Assigned(PbitmapInfoArr) then
SafeArrayDestroy(PbitmapInfoArr);
size := width * height * bytePerPixel;
PpixelDataArr := SafeArrayCreateVector(VT_UI1, 0, size);
PbitmapInfoArr := SafeArrayCreateVector(VT_UI1, 0, sizeof(BITMAPINFOHEADER));
pHeader := @Header;
SafeArrayAccessData(PbitmapInfoArr, pHeader);
Header.biSize := sizeof(BITMAPINFOHEADER);
Header.biWidth := width;
Header.biHeight := height;
Header.biBitCount := bytePerPixel*8;
Header.biCompression := FourCC;
SafeArrayUnaccessData(PbitmapInfoArr);
Was sich nicht vertragen hat war
diese Umsetzung auf die mir niemand geantwortet hat als ich danach fragte.
Nun habe ich diese Verändert da die Konvertierung "pHeader := @Header" tatsächlich nicht funktioniert hat.
Jetzt kommen die Daten auch richtig an. Zumindest was den Header betrifft mit dem anderen muss ich noch schaun.
Delphi-Quellcode:
procedure TAtmoCtrlLib.AtmoCreateTransferBuffers(header: PBITMAPINFOHEADER; FourCC, bytePerPixel, width,
height: Integer);
var
size: Integer;
begin
if Assigned(PpixelDataArr) then
SafeArrayDestroy(PpixelDataArr);
if Assigned(PbitmapInfoArr) then
SafeArrayDestroy(PbitmapInfoArr);
size := width * height * bytePerPixel;
PpixelDataArr := SafeArrayCreateVector(VT_UI1, 0, size);
PbitmapInfoArr := SafeArrayCreateVector(VT_UI1, 0, sizeof(BITMAPINFOHEADER));
SafeArrayAccessData(PbitmapInfoArr, Pointer(Header));
Header.biSize := sizeof(BITMAPINFOHEADER);
Header.biWidth := width;
Header.biHeight := height;
Header.biBitCount := bytePerPixel*8;
Header.biCompression := FourCC;
SafeArrayUnaccessData(PbitmapInfoArr);
end;
AtmoCtrlLib.AtmoCreateTransferBuffers(@BitmapInfoHeader, BI_RGB, 4, 64, 48);
Wie gesagt ich muss den Kram alles selber machen da gibt es nichts vergleichbares.
War wohl nur für C++ C# gedacht!
EDIT:
Eigentlich müssten doch die Pixel inklusive der Farben in Bmp.bmBits vorhanden sein oder?
Hmm wenn nicht muss ich diese wohl noch zu psa.rgsabound[0] hinzufügen sehe ich das richtig?
Das will irgendwie nicht mit den PixelArray
Im Moment fällt mir nichts mehr ein.
gruss und Danke..