Heim  >  Artikel  >  Java  >  Wie erreicht man mit ImageIO eine explizite Komprimierungsstufensteuerung für JPEG-Bilder?

Wie erreicht man mit ImageIO eine explizite Komprimierungsstufensteuerung für JPEG-Bilder?

Linda Hamilton
Linda HamiltonOriginal
2024-10-24 18:43:39440Durchsuche

How to Achieve Explicit Compression Level Control for JPEG Images with ImageIO?

Einstellen der Komprimierungsstufe für JPEG-Bilder mit ImageIO

Beim Speichern von Bildern als JPEGs mit ImageIO möchte man häufig die Komprimierungsstufe anpassen, um das Gleichgewicht zwischen der Bildqualität zu steuern und Dateigröße. Der standardmäßigen ImageIO-Funktionalität fehlt diese Option jedoch.

Um die Komprimierungsstufe explizit festzulegen, müssen wir tiefer in die ImageIO-API eintauchen. Die Verwendung von ImageIO.getImageWritersByFormatName("jpg").next() ermöglicht den Zugriff auf einen ImageWriter, der es uns ermöglicht, bestimmte Parameter für das JPEG-Format zu ändern.

Die ImageWriteParam-Klasse bietet Kontrolle über die Komprimierungseinstellungen. Durch Festlegen von ImageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) ermöglichen wir die explizite Einstellung der Komprimierungsstufe.

Um die Komprimierungsstufe anzugeben, verwenden Sie ImageWriteParam.setCompressionQuality(0.7f) (wobei 0,7f eine gewünschte Komprimierungsstufe darstellt). Ein Wert näher an 1,0 weist auf eine höhere Qualität und eine geringere Komprimierung hin, während ein Wert näher an 0,0 einer geringeren Qualität und einer höheren Komprimierung entspricht.

Die ImageWriter.setOutput()-Methode erfordert einen ImageOutputStream, der es uns ermöglicht, die Bilder zu steuern Ziel. Verwenden Sie entweder FileImageOutputStream für die Dateiausgabe oder MemoryCacheImageOutputStream für die Ausgabe in einen Speicherpuffer.

Um das geänderte JPEG zu speichern, verwenden Sie jpgWriter.write(null, OutputImage, jpgWriteParam), wobei OutputImage ein IIOImage ist, das die Bilddaten und jpgWriteParam enthält sind die zuvor konfigurierten Komprimierungseinstellungen.

Dieser Ansatz bietet eine detaillierte Kontrolle über die JPEG-Komprimierungsstufen, sodass Sie die Bildqualität und Dateigröße für Ihre spezifischen Anforderungen optimieren können.

Das obige ist der detaillierte Inhalt vonWie erreicht man mit ImageIO eine explizite Komprimierungsstufensteuerung für JPEG-Bilder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn