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!