1

Java のソフトウェアまたはプログラム、または非常に大きな画像 (140MB を超える) を並べて表示する方法が必要です。ImageMagick と変換ツール Photoshop、Corel Draw、Matlab (Windows) を使用しましたが、メモリ過負荷の問題があります。ImageMagick は非常に遅く、結果は望ましくありません。ハードディスクから画像全体をロードせずに、画像のごく一部のみをメモリにロードする方法がわかりません。

4

4 に答える 4

0

JAI はプラットフォームに依存しており、今日では死んだプロジェクトのようです。

オープンソース プログラムのimagemagickを使用することをお勧めします。プラットフォームに依存しますが、JAI と同じプラットフォームで利用できますが、完全なコミュニティ サポートがあります。

imagemagick に関する大きな画像に関するトリックは、 convertコマンドの代わりに「 stream 」コマンドを使用することです。ストリームは、画像の関連部分のみを読み取り、抽出された部分を生データとして保存します。次に、小さな生データを jpeg として保存するために「変換」する必要があります。

サイズ 800x600 の large.jpeg からタイルを位置 0x0 から tile.jpeg に保存する例:

    stream -extract 800x600+0+0 large.jpeg tile.rgb

    convert -depth 8 -size 800x600 rgb:tile.rgb tile.jpeg

(Windows で実行する場合は、「convert」という名前の Windows コマンドがあるため、必ず ImageMagick の convert.exe を使用してください。)

TIFF 画像のみを操作する場合は、apache Sanselanが適切な選択になる可能性があります。これは純粋な Java 画像処理ライブラリです。また、JAI には TIFF 用のプラットフォームに依存しないコーデックが含まれているようです。

于 2012-01-06T10:58:31.480 に答える
0

ネイティブ コードを使用する場合、libjeg などのライブラリを使用すると、画像へのスキャンライン アクセスが可能になります。一度に最大で 16 スキャンラインをロードする必要があります。

于 2010-04-07T12:24:56.743 に答える
0

Java Advanced Imaging (JAI) API を調べる必要があります。これは、大きな画像を並べて表示するためのすぐに使えるサポートを提供します。これはやや複雑な API であり、ドキュメントは少しまばらですが、1 枚あたり約 60 mb の非常に背の高い (しかし狭い) 画像を表示するプロジェクトで使用しました。

開始するためのいくつかのリンクを次に示します。

JAI を使用して Java で画像を処理する

JAIプロジェクトホームページ

于 2010-04-07T15:52:19.043 に答える
0

Java ではありませんが、Inter Performance Primitives (IPP) には、タイルで動作する画像操作用の一連の関数があります。おそらく、これらの関数を Java からインターフェースすることができます。

于 2010-04-08T10:53:58.713 に答える