Slyh: JPEG Encoder: Farben werden falsch

Beitrag lesen

Hallo,

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
       JPEGEncodeParam param;

JPEGImageEncoder, JPEGCodec und JPEGEncodeParam sind alle aus dem
Package "com.sun.image.codec.jpeg".

Merke: Verwende niemals (nie, nie, nie) Klassen aus den Packages
"com.sun.*". Verwende nur Klassen aus den Packages "java.*".
Die Klassen unterhalb von "com.sun.*" sind nur für den internen
Gebrauch des API bestimmt, und können sich jederzeit ändern oder
entfernt werden. Außerdem wird nicht garantiert, daß sie das tun,
was sie sollen.
Solange du nicht sehr(!) genau weißt was du tust, und ganz sicher
bist, daß du Klassen aus "com.sun.*" verwenden möchtest, solltest du
sie auf gar keinen Fall verwenden!

Im Java Almanac ist beschrieben, wie du ein JPG-Bild speicherst.
Dort wird auch gezeigt wie die Qualität festgelegt, so wie du das
ja offensichtlich tun willst.

(Beachte, daß in der JDK1.4 ein Bug in der setCompressionQuality()-
Methode vorhanden ist, der das Überschreiben der Methode notwendig
macht, um die korrekte Funktionalität nachzubilden.)

Falls du dasselbe Problem auch bei Vermeidung von "com.sun.*"
weiterhin haben solltest, melde dich einfach nochmal. (Vergiß dann
bitte nicht, deinen neuen Code zu posten.)

Ich würde ja ohnehin auf einen Fehler beim Verändern des Bildes tippen.
Bei mir war es zumindest bisher immer dieses Problem. :-)

(Ich meine mich an ein Problem zu erinnern, daß das Speichern von
JPG-Bildern nicht richtig funktioniert, wenn das Bild einen Alpha-
Kanal hat. Solltest du versehentlich ein BufferedImage vom Typ
RGBA erzeugen, solltest du mal ein reines RGB probieren.)

Was mache ich da falsch? Muss ich irgendwelche Farbpaletten übergeben oder so?

JPEG hat keine Farbpaletten.

Gruß
Slyh