Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#3

Re: GraphicEx Tiff m.256 Farben laden falsche Farbe

  Alt 18. Feb 2009, 10:37
Ohne das genauer zu Prüfen ist mir in der Unit GraphicColor die Verwendung der Funktion "MulDiv16" aufgefallen.
Scheinbar wird diese an vielen Stellen verwendet um einen 16Bit-Wert gerundet als 8Bit-Wert abzubilden.
z.B. MulDiv16(Value, 255, 65535).
Die TIFF-Palette nutzt 16-Bit für jeweils Rot, Grün und Blau.
Vermulich wurden beim Speichern der Datei die jeweiligen Werte von RGB jeweils mit 256 multipliziert.
clAqua = 16776960 = $FF $FF $00 wurde als $FF00 $FF00 $0000 gespeichert.

($FF00 * 255) div 65535 = $FE

Eventuell genügt es die Funktion TColorManager.ComponentScaleConvert anzupassen:

Result := Value shr 8;
  Mit Zitat antworten Zitat