在 Java 中使用 ImageIO 設定 JPEG 壓縮等級
在 Java 中,ImageIO 是用於影像處理的多功能函式庫。然而,它缺乏一種明確的方法來在寫入影像時設定 JPEG 壓縮等級。本文透過示範如何使用 ImageIO API 調整壓縮品質來解決此限制。
解
要控制 JPEG 壓縮,一種方法是使用 ImageWriteParam 類別。以下步驟概述了這個過程:
範例程式碼:
<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>
此程式碼片段明確將壓縮品質設定為0.和檔案大小之間達到平衡的圖像.
注意:
範例假設存在影像變數和用於寫入輸出的File 物件。此外,在寫入記憶體緩衝區時,MemoryCacheImageOutputStream 類別是 FileImageOutputStream 的替代方案。
以上是如何在 Java 中使用 ImageIO 控制 JPEG 壓縮等級?的詳細內容。更多資訊請關注PHP中文網其他相關文章!