Thema: Delphi High Color --> TrueColor

Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

High Color --> TrueColor

  Alt 19. Feb 2008, 14:56
Hi,

Ich versuche gerade einen 16-Bit HighColor Wert in eine 32-Bit TrueColor Farbe zu konvertieren. Aber irgendwas stimmt da was nicht.

Meinen Informationen zufolge ist eine 16-Bit Farbe so aufgebaut:

RRRRR GGGGGG BBBBB

Meine Funktion sieht so aus:

Delphi-Quellcode:
function HighColorToTrueColor(AColor: Word): TRGBQuad;
begin
  Result.rgbRed := ((AColor and $F800) shr 11) * Round(255/31);
  Result.rgbGreen := ((AColor and $07E0) shr 5) * Round(255/63);
  Result.rgbBlue := (AColor and $001F) * Round(255/31);
end;
Das müsste meinen Berechnungen zufolge auch hinhauen... Jetzt habe ich mir mal mit Photoshop ein pinkes 16-Bit Bitmap erstellt und im Hex-Editor geladen:

Pink (255 0 255): 1F 7C

IntToBin($1F7C) = 00011 111011 11100

Das kann aber ja nicht stimmen. Dieses Pink müsste ja dann eigentlich so aussehn:

11111 000000 11111

=> F8 1F

Jetzt bin ich etwas verwirrt

PS: Ach ja für $F81F liefert meine Funktion Pink, also funktioniert sie.

PPS: Wenn man die beiden Bytes umdreht:

0111110000011111

Ok alles klar.. Antworten könnt ihr euch sparen

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat