ホームページ >Java >&#&チュートリアル >Java で ImageIO を使用して画像を保存するときに JPEG 圧縮レベルを制御する方法
Java API for Image I/O (JAII) の一部である ImageIO は、次のような便利な方法を提供します。 JPEG を含むさまざまな形式のイメージの読み取りと書き込み。ただし、デフォルトでは、ImageIO は JPEG 圧縮レベルを直接制御できません。この記事では、この制限を克服し、BufferedImage を JPEG ファイルとして保存する際に必要な圧縮レベルを設定する方法について説明します。
提供されている Java 関数 getScreenShot BufferedImage をキャプチャし、JPEG ファイルとして保存します。ただし、圧縮設定は指定されていません。
<code class="java">public static void getScreenShot(BufferedImage capture, Path folder, String filename) { try { ImageIO.write(capture, "jpeg", new File(folder.toString()+"/"+filename+".jpg")); } catch (AWTException | IOException ex) { Logger.getLogger(ScreenShotMaker.class.getName()).log(Level.SEVERE, null, ex); } }</code>
JPEG 圧縮レベルを設定するには、ImageWriteParam オブジェクトにアクセスする必要があります。このオブジェクトには、圧縮レベルを制御するパラメータが含まれています。画像のエンコード処理。より詳細なスニペットは次のとおりです。
<code class="java">ImageWriter jpgWriter = ImageIO.getImageWritersByFormatName("jpg").next(); ImageWriteParam jpgWriteParam = jpgWriter.getDefaultWriteParam(); jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpgWriteParam.setCompressionQuality(0.7f);</code>
compressionMode を MODE_EXPLICIT に設定することで、圧縮レベルを明示的に制御します。 CompressionQuality に渡される値によって、目的の圧縮レベルが決まります。1.0f は最大品質を表し、0.0f は最大圧縮を表します。
これらの拡張機能を組み込むことで、Java で ImageIO を使用して画像を保存する際に、特定の要件を満たすように JPEG 圧縮レベルをカスタマイズできます。
以上がJava で ImageIO を使用して画像を保存するときに JPEG 圧縮レベルを制御する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。