Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.164 Beiträge
 
Delphi 12 Athens
 
#3

Re: 8 bit Color Byte zu 24 bit Farbe umrechnen

  Alt 27. Sep 2005, 10:52
hmmm, mit der Berechnung wird dat nicht's Richtiges:
Delphi-Quellcode:
R := (C and $07) * 36.428571;
G := ((C shr 3) and $07) * 36.428571;
B := ((C shr 5) and $03) * 85;

Also bleibt dann noch der einfache Weg über 'ne Tabelle.

Entwerde du nimmst alle 256 Farbwerte in Eine auf, oder du erstellst nur kleine Tabellen, womit du dann jeden Farbwert inzeln berechnen kannst:
Delphi-Quellcode:
T3: Array[0..7] of Byte = (0, 36, ..., 219, 255);
T2: Array[0..3] of Byte = (0, 85, 170, 255);


R := T3[C and $07];
G := T3[(C shr 3) and $07];
B := T2[(C shr 5) and $03];

C24 := T3[C8 and $07]
  or (T3[(C8 shr 3) and $07] shl 8)
  or (T2[(C8 shr 5) and $03] shl 16);


[add]
@Kroko: andersrum gehts auch ... dann wird's aber net mehr ganz Schwarz ^^

Delphi-Quellcode:
Result := Rgb ((((AColor + 1) and $07) - 1) shl 5,
               (((AColor + 1) and $38) - 1) shl 2,
               ((AColor + 1) and $C0) - 1);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat