A0プリンターで印刷するときに使用される非常に大きなjpgがいくつかあります。
問題は、いくつかの Java UI で使用するために、この大きな画像をサムネイルに変換する必要があることです。
画像全体をメモリにロードせずに (Java で) 画像を変換する方法はありますか? 現在、画像をロードしようとするとメモリ不足の例外が発生します。
標準コードに何かありますか、それともjmagickを使用するのが最善の策ですか? 純粋な Java 実装は、私たちの展開に最適です。
ありがとう
A0プリンターで印刷するときに使用される非常に大きなjpgがいくつかあります。
問題は、いくつかの Java UI で使用するために、この大きな画像をサムネイルに変換する必要があることです。
画像全体をメモリにロードせずに (Java で) 画像を変換する方法はありますか? 現在、画像をロードしようとするとメモリ不足の例外が発生します。
標準コードに何かありますか、それともjmagickを使用するのが最善の策ですか? 純粋な Java 実装は、私たちの展開に最適です。
ありがとう
私はそれをうまく動かすことができました、そして完全なコードは次の通りです。
reader.setInput(iis、true、true);の呼び出し。前回の投稿で欠けていた魔法です。
FileInputStream fin = new FileInputStream(source);
ImageInputStream iis = ImageIO.createImageInputStream(fin);
Iterator iter = ImageIO.getImageReaders(iis);
if (!iter.hasNext()) {
return;
}
ImageReader reader = (ImageReader) iter.next();
ImageReadParam params = reader.getDefaultReadParam();
reader.setInput(iis, true, true);
params.setSourceSubsampling(width, height, 0, 0);
BufferedImage img = reader.read(0, params);
ImageIO.write(img, "JPG", destination);