Einzelnen Beitrag anzeigen

SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#1

15Bit RGB in TBitmap32 konvertieren

  Alt 7. Mai 2011, 12:11
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?
Miniaturansicht angehängter Grafiken
smiley.png  
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !

Geändert von SittingDuck ( 7. Mai 2011 um 12:23 Uhr) Grund: Format-Beschreibung hinzugefügt
  Mit Zitat antworten Zitat