Java で ImageIO を使用して JPEG 圧縮レベルを設定する
Java では、ImageIO は画像操作用の多用途ライブラリです。ただし、画像を書き込むときに JPEG 圧縮レベルを設定する明示的な方法がありません。この記事では、ImageIO API を使用して圧縮品質を調整する方法を説明することで、この制限に対処します。
解決策
JPEG 圧縮を制御する 1 つの方法は、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.7 に設定し、品質とファイル サイズのバランスが取れた画像を生成します。 .
注:
この例では、出力を書き込むためのイメージ変数と File オブジェクトが存在することを前提としています。さらに、MemoryCacheImageOutputStream クラスは、メモリ バッファに書き込むときに FileImageOutputStream の代わりになります。
以上がJava で ImageIO を使用して JPEG 圧縮レベルを制御する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。