2

Docは言う:

AIR3およびFlashPlayer11以降、BitmapDataオブジェクトのサイズ制限が削除されました。ビットマップの最大サイズは、オペレーティングシステムによって異なります。

しかし、なぜ120,000 x 120,000ピクセルのBitmapDataオブジェクトを使用できないのですか?私は64ビットカーネルのOSXLionを使用しています。

これで、120,000 ^ 2を使用すると、占有する必要のある14,400,000,000ピクセルが得られます。これは、そのintを格納するのに34ビットしかかかりません。しかし、どうやら私は64ビット整数を持つことができますね?私は何かが恋しいですか?そして、それは「オペレーティングシステムに依存する」とはどういう意味ですか?どのように?

4

3 に答える 3

8

BitmapDataピクセルはいつから1ビットに相当しますか?色情報を扱っているので、各ピクセルは少なくともuint(=>サイズ:32ビットまたは4バイト)を占めることを忘れないでください。

つまり、これはあなたのメモリ消費が実際にあることを意味します

120000^2 * 4 => 57,600,000,000 Bytes => ap. 53,6 GB

Numberまた、whileは64ビットのデータ型でintあり、そうではないことにも注意してくださいuint

データを整理するための別の手段の使用を検討することをお勧めします。
大きな画像を扱う場合は、それを適切なサイズの部分に分割する必要があります。制限が解除された可能性がありますが、最大に制限することをお勧めします。ステージサイズの4倍(適度にスムーズなスクロールには十分小さい、ステージにオブジェクトを常に配置する必要がないように十分大きい)。

保存したい実際のピクセル情報でない場合は、おそらくByteArrayが代わりになる可能性があります。

于 2012-04-12T09:19:37.243 に答える
1

実際、アドレス可能なサイズの量には、ソフトウェアとハ​​ードウェアの制限がいくつかあります。32/64ビットアーキテクチャを除いて、他にもいくつかあります。

  • メモリコントローラーの合計制限
  • RAMスロットの量x最大RAMモジュールサイズ
  • PAE(CPU + OSに依存)などの一部のメモリ管理レイヤーの実装では、アドレス可能な仮想メモリの合計量を増やすこともできますが、物理メモリの最大量は同じままです。
  • マーケティング/ソフトウェアOSの制限(同じWiki記事のWindowsバージョンについてはセクション2.5を参照してください)。

私がウェブの状態で見つけた唯一の情報は、Mac OS X Lion(サーバーではない)のソフトウェア制限は64GBです。ただし、物理的にマシンよりも多くのメモリを1つのピースに割り当てるという試みは、ほとんど成功しません。

于 2012-04-12T09:25:56.713 に答える
0

どんなものを保存したいですか?何か生成的に?固定のランダムシードを使用するシステムを作成し、低解像度でビュー/作成するものを構築する必要があると思います。同じ動きを繰り返すことができるはずです。ある意味でそのポイントに到達するには、おそらく(カスタム)モーションを保存する必要があります。それがある場合は、スケール変数を適用し、タイルごとにタイルをレンダリングして、大きなお尻のキャンバスを回避する必要があります。この種のシステムは構築に時間がかかり、描画する必要のあるもののスケーリングが大きすぎると、問題が発生する可能性があります。
述べたように、その種のプリントでは、その高解像度は必要ありません。もちろん、それ以外に、これらの巨大なサイズを取得することはとにかく挑戦になるでしょう。

于 2012-04-16T12:50:17.407 に答える