Farbveränderungen beim speichern als jpg

HerbertXXL

Mitglied
Hallo!
Ich habe beim Speichern von selbstgenerierten Bildern als jpg-Datei ein kleines Qualitätsproblem.
Zwar habe ich es entzwischen hinbekommen die Kompressionsqualität richtig einzustellen (und ja da bin ich mir ganz sicher :) ).

Aber leider ändern sich beim Speichern die Farben, zumindest überall wo es große Kontraste gibt.
In z.B. Gimp kann ich diesen Effekt verhindern in dem ich beim Subsampling eine bessere Qualität einstelle.

Die setSourceSubsampling - Funktion in ImageWriteParam ist, soweit ich das verstanden habe, aber leider nicht dafür zu gebrauchen.
Hat jemand eine Idee, die mir vielleicht weiterhilft?

Vielen Dank
der Herbert

Im Anhang zwei Bilder die mein Problem verdeutlichen. Das erste wie es sein sollte, das zweite wie es ist.


Java:
            // Find a jpeg writer
            ImageWriter writer = null;
            Iterator iter = ImageIO.getImageWritersByFormatName("jpg");
            if (iter.hasNext()) {
                writer = (ImageWriter)iter.next();
            }
            // Prepare output file
            ImageOutputStream ios = ImageIO.createImageOutputStream(outfile);
            writer.setOutput(ios);
            
            // Set the compression quality            
            ImageWriteParam iwparam = new MyImageWriteParam();
            
            iwparam.setCompressionMode(ImageWriteParam.MODE_DEFAULT) ;
            iwparam.setCompressionQuality(compressionQuality);
            
            // Write the image
            writer.write(null, new IIOImage(image, null, null), iwparam);
            writer.dispose();
            ios.close();
 

Anhänge

  • testrichtig.png
    testrichtig.png
    13,3 KB · Aufrufe: 21
  • testfalsch.png
    testfalsch.png
    45,8 KB · Aufrufe: 25
Zuletzt bearbeitet:
Hallo Herbert,

den Fehler kenne ich in ähnlicher Form.

Mich würde interessieren, welche JAVA-Version du verwendet hast und unter welchem Betriebssystem.

Welchen JPEG-Qualitätsfaktor hattest du eingestellt?
Hat die JAI-Bibliothek dein Problem eigentlich beheben können?
Hast du deinen Code dafür geändert?
Wenn ja, wie hast du es gelöst?

Falls du den Fehler heute immer noch erzeugen kannst, dann würde ich dir gerne mal eine Datei schicken, und dich bitten diese durch deinen Code zu schicken und einmal ohne Farbveränderungen und einmal mit den Farbveränderungen zu speichern und mir zurück zu schicken.

Danke und Gruß
ColorIW
 
Zurück