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.
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
Zuletzt bearbeitet: