Einstellen der JPEG-Komprimierungsstufe mit ImageIO in Java
In Java ist ImageIO eine vielseitige Bibliothek zur Bildbearbeitung. Es fehlt jedoch eine explizite Methode zum Festlegen der JPEG-Komprimierungsstufe beim Schreiben von Bildern. In diesem Artikel wird diese Einschränkung behoben, indem gezeigt wird, wie die Komprimierungsqualität mithilfe der ImageIO-API angepasst wird.
Lösung
Um die JPEG-Komprimierung zu steuern, besteht ein Ansatz darin, die ImageWriteParam-Klasse zu verwenden. Die folgenden Schritte beschreiben den Prozess:
Beispielcode:
<code class="java">ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam(); jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpgWriteParam.setCompressionQuality(0.7f); ImageOutputStream outputStream = new FileImageOutputStream(new File("output.jpg")); jpgWriter.setOutput(outputStream); IIOImage outputImage = new IIOImage(image, null, null); jpgWriter.write(null, outputImage, jpgWriteParam); jpgWriter.dispose();</code>
Dieses Code-Snippet setzt die Komprimierungsqualität explizit auf 0,7 und erzeugt so ein Bild mit einem Gleichgewicht zwischen Qualität und Dateigröße .
Hinweis:
Die Beispiele gehen von der Existenz einer Bildvariablen und eines File-Objekts zum Schreiben der Ausgabe aus. Darüber hinaus ist die MemoryCacheImageOutputStream-Klasse eine Alternative zu FileImageOutputStream beim Schreiben in einen Speicherpuffer.
Das obige ist der detaillierte Inhalt vonWie steuere ich die JPEG-Komprimierungsstufe mit ImageIO in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!