Moin zusammen ...
Ich versuche 16Bit
RGB(555) Raw-Daten in ein TBitmap32 zu bekommen, aber irgendwas stimmt hier nicht ... Bit-Schieben ist nicht so meine Stärke. Wer kann helfen? Dieses Format wird
hier ganz gut beschrieben.
Delphi-Quellcode:
var i: Integer; Ptr: Pointer; RawMS: TMemoryStream;
RawMS.CopyFrom(SourceMS, 50560); // RawDaten holen (158 * 158 * 2)
bmp := TBitmap.Create;
TempMap := TBitmap32.Create;
bmp.Width := 158; bmp.Height := 158;
bmp.PixelFormat := pf15bit; // so stimmen zumindestens die Farben
for i := 0 to 157 do begin
Ptr := bmp.ScanLine[i];
RawMS.Read(Ptr^, bmp.Width * 2);
end;
TempMap.Assign(bmp);
TempMap.DrawTo(FotosImage.Bitmap, 4, 4); // Ausgeben auf einem TImageView32
Das Ergebnis ist irgendwie verschoben. (siehe Bild im Anhang ... soll ein grinsender Smiley sein)
Auch gefällt mir der Umweg über das TBitmap nicht. Kann man das nicht direkt in ein TBitmap32 einlesen?