Anpassen der JPEG-Komprimierungsstufe in Java mit ImageIO
Im Bereich der Bildbearbeitung ist die Steuerung der Komprimierungsstufe von JPEG-Dateien für den Ausgleich von entscheidender Bedeutung Bildqualität und Dateigröße. Auch wenn die Standardkomprimierungsstufe für ImageIO möglicherweise nicht immer ausreicht, wird in diesem Artikel die Feinabstimmung dieses Parameters erläutert.
Den ImageWriter direkt abrufen
Ein direkter Ansatz beinhaltet Abrufen des ImageWriter für das JPEG-Format:
ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next();
Einstellen expliziter Komprimierungsparameter
Um die Komprimierungsstufe explizit festzulegen, verwenden Sie die ImageWriteParam-Klasse:
ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam();
jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
Anpassen der Komprimierungsqualität
Die gewünschte Komprimierungsstufe wird als Float zwischen 0,0f (maximale Komprimierung, minimale Qualität) angegeben. und 1.0f (minimale Komprimierung, maximale Qualität):
jpgWriteParam.setCompressionQuality(0.7f); // Set a compression quality of 70%
Ausgabe schreiben
Der ImageWriter benötigt einen ImageOutputStream, um das Bild auszugeben:
ImageOutputStream outputStream = createOutputStream(); // Generate an OutputStream (e.g., a FileImageOutputStream)
jpgWriter.setOutput(outputStream);
Finalization
Sobald das Bild geschrieben ist, sollte der ImageWriter entsorgt werden:
jpgWriter.dispose();
Zusammenfassend lässt sich sagen, dass Sie durch den direkten Bezug des ImageWriter und das Festlegen expliziter Komprimierungsparameter eine präzise Kontrolle über die JPEG-Komprimierungsstufe erhalten und so die Bildqualität und Dateigröße entsprechend Ihren spezifischen Anforderungen optimieren können.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3