ホームページ  >  記事  >  Java  >  ImageIO を使用して JPEG 画像の明示的な圧縮レベル制御を実現するにはどうすればよいですか?

ImageIO を使用して JPEG 画像の明示的な圧縮レベル制御を実現するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 18:43:39440ブラウズ

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

ImageIO を使用して JPEG 画像の圧縮レベルを設定する

ImageIO を使用して画像を JPEG として保存する場合、画質のバランスを制御するために圧縮レベルを調整することが一般的です。そしてファイルサイズ。ただし、デフォルトの ImageIO 機能にはこのオプションがありません。

圧縮レベルを明示的に設定するには、ImageIO API をさらに詳しく調べる必要があります。 ImageIO.getImageWritersByFormatName("jpg").next() を使用すると、ImageWriter にアクセスできるようになり、JPEG 形式の特定のパラメーターを変更できるようになります。

ImageWriteParam クラスは、圧縮設定の制御を提供します。 ImageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT) を設定すると、明示的な圧縮レベル設定が有効になります。

圧縮レベルを指定するには、ImageWriteParam.setCompressionQuality(0.7f) を使用します (0.7f は希望の圧縮レベルを表します)。 1.0 に近い値は高品質で圧縮率が低いことを示し、0.0 に近い値は低品質で高圧縮率に対応します。

ImageWriter.setOutput() メソッドには、画像の制御を可能にする ImageOutputStream が必要です。行き先。ファイル出力には FileImageOutputStream を、メモリ バッファへの出力には MemoryCacheImageOutputStream を使用します。

変更した JPEG を保存するには、jpgWriter.write(null, OutputImage, jpgWriteParam) を使用します。ここで、outputImage は、画像データと jpgWriteParam を含む IIOImage です。は、前に構成した圧縮設定です。

このアプローチにより、JPEG 圧縮レベルをきめ細かく制御できるため、特定のニーズに合わせて画質とファイル サイズを最適化できます。

以上がImageIO を使用して JPEG 画像の明示的な圧縮レベル制御を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。