7

ImageMagick の「convert」コマンドライン ツールを使用すると、操作の実行中にメモリ使用量の制限を指定できます。同じオプションを提供する Java 画像サイズ変更ライブラリを見つけたいと思います。私のアプリケーションは非常に大きな JPEG を取得することがあり、それらを適切なサイズにダウンサンプリングする必要があります。たとえば、11600 x 5152 の画像は、解凍するだけで約 227MB のメモリを消費します。サイズ変更プロセスは、それよりもいくらか多く使用します。

Javaで、メモリ内の画像全体を解凍せずに、非常に大きな画像のサイズを適切なサイズに変更する方法はありますか?

4

1 に答える 1

3

このトピックですでにある程度議論されていると思います:最高の Java 画像処理ライブラリ/アプローチは何ですか?

ただし、Java 自体は画像操作および処理 API を提供し、チャンク単位でピクセル データを読み取る (したがって操作する) 機能を備えています。意図したとおりに動作するようにコードを書くこともできますが、ニーズによっては、パフォーマンスの実際の改善は問題に値しません。

ニーズに応じて可能な限り最高のパフォーマンスを実現する確実な方法は、JNI を使用することです。これは、ある種のネイティブ ソリューション (純粋な C OpenGL コードなど) を使用して、画像の読み込みと処理を処理します。しかし、まったく同じ理由から、これはやり過ぎであり、まったく問題がないと見なされる可能性があることは確かに理解できます。繰り返しますが、ここで既に説明しました: Load a PNG image as BufferedImage through JNI C code

于 2012-11-12T18:46:09.623 に答える