Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#12

AW: pf8Bit seltsames aussehen der Palette

  Alt 11. Apr 2016, 09:33
Wie vermutet.
Delphi-Quellcode:
  ScanLines: TArray<PRGBTriple>;
  P: PRGBTriple;
Bei pf8Bit hast du keine RGBTriples mehr, sondern nur noch 1 Byte pro Pixel (8 Bit halt). Die richtigen Typen wären also:
Delphi-Quellcode:
  ScanLines: TArray<PByte>;
  P: PByte;
Das hier:if Assigned(P) then HSLtoRGB(H, S, L, P^.rgbtRed, P^.rgbtGreen, P^.rgbtBlue); geht dann aber natürlich auch nicht mehr! Wenn du ein Bitmap mit Palette hast, hast du keine Farbwerte mehr in den Pixeln stehen, sondern einen Index in die Palette!! Statt also die Farben in die Pixeldaten zu schreiben, musst du dir für jeden Pixel eine Farbe aus der Palette aussuchen und deren Index in die Pixeldaten schreiben. Bitmaps mit Paletten sind da anders als die ohne.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat