0

大きな画像をディスクに保存する必要があります。大きすぎると、メモリ不足エラー (10000x10000 ピクセルなど) が発生します。タイリングであると想定されており、タイルを BufferedImage としてメモリに保存しています。TiledImage クラスが画像の一部のみを操作でき、残りはディスクに保存されていることについて何か読みましたが、これを行う方法の簡単な例が見つかりませんか? すべてをメモリに保存せずに大きな画像をディスクに保存する方法について、私に指摘するか、ダミーのチュートリアルを作成していただけますか? 「このようにディスク上に直接大きなイメージを作成する:」、「その部分にアクセスして、このようにデータを保存する:」、またはどのように機能するか..

私はこれがここで数回尋ねられたことを知っていますが、私はそれをすべて読んでたくさんグーグルで検索しましたが、まだ完全に機能する (または理解できる) 例を見つけていません. 多分それは言葉の壁かもしれません、または私はこの種のことで愚かです、とにかく、助けてください:)

4

4 に答える 4

2

ドキュメントからDiskMemImageをチェックアウトしましたか:

このクラスは、JAI の標準の TiledImage クラスと同じ目的を果たします。つまり、さまざまなデータ型、オプションの ColorModel、およびタイルに配置されたデータに対応できる書き込み可能なイメージです。ただし、TiledImage とは異なり、DiskMemImage はディスクとメモリ ストレージを使用して、非常に大きな画像を限られたメモリで処理できるようにします。

于 2012-12-28T12:25:48.150 に答える
0

PNGJをご覧ください。同様のシナリオ用にそのライブラリを作成しました。

于 2012-12-28T12:43:00.340 に答える
-1

私はあなたの最大メモリを増やすだけです。それははるかに簡単です。-Xmx1gコマンドラインで試してみてください。

タイルの使用に魔法はありません。画面上でつなぎ合わせるときに、画像を小さな画像に分割するだけで、大きな画像のように見えます。たとえば、Google マップはこれを行います。

于 2012-12-28T12:26:57.787 に答える
-1

Java で OutOfMemoryError を解決する簡単な方法は、JVM オプションを使用して最大ヒープ サイズを増やすことです。

于 2012-12-28T12:29:47.367 に答える