Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Farbfehler bei Jpeg.SaveToFile

  Alt 15. Nov 2009, 02:21
Hallo,

wenn ich mit Jpeg.SaveToFile ein Bild speichere, treten beim gespeicherten Bild massive Farbfehler (Falschfarben) auf, wenn die Farbtiefe in Windows auf 16 Bit eingestellt ist. Wenn die Windows-Farbtiefe auf 32 Bit eingestellt ist, treten diese Farbfehler nicht auf:

Delphi-Quellcode:
Jpeg := TJpegImage.Create();
try
  Jpeg.Assign(MyImage.Picture.Bitmap);
  //Jpeg.PixelFormat := jf8Bit; // erzeugt eine NullByte-Datei!
  Jpeg.SaveToFile(F);
finally
  Jpeg.Free;
end;
Wie kann ich das vermeiden, da ich doch davon ausgehen muss, dass zumindest einige Anwender die Farbtiefe auf 16 Bit eingestellt haben?

Eigenartigerweise treten die Farbfehler nicht beim ersten Speichern als JPG auf, sondern erst beim 2. Mal, und zwar in dieser Reihenfolge:

1. Speichern als JPG wie oben im Beispiel-Code: Keine Farbfehler
2. Speichern als BMP: MyImage.Picture.Bitmap.SaveToFile(F); 3. Speichern als JPG wie oben im Beispiel-Code: Hier tritt der Fehler auf!
  Mit Zitat antworten Zitat