Ale*_*kov 2 int actionscript-3 bitmapdata flash-player-11
Doc说:
从AIR 3和Flash播放器11开始,已删除BitmapData对象的大小限制.现在,位图的最大大小取决于操作系统.
但是,为什么我不能拥有120,000 x 120,000 px BitmapData对象?我在OS X Lion上使用64位内核.
现在120,000 ^ 2将给我需要占用的14,400,000,000个像素,这只需要34位来存储该int.但显然我可以有64位整数,不是吗?我错过了什么吗?它的意思是"依赖于操作系统"?怎么样?
从什么时候BitmapData像素相当于一位?请记住,您正在处理颜色信息,因此每个像素至少占用一个uint
(=>大小:32位或4个字节).
那么,这意味着你的内存消耗实际上是
120000^2 * 4 => 57,600,000,000 Bytes => ap. 53,6 GB
Run Code Online (Sandbox Code Playgroud)
还要注意的是,虽然Number
是一个64位的数据类型,int
而uint
不是.
您可能需要考虑使用不同的方法来组织数据.
如果您正在处理大图,则必须将其拆分为合理大小的部分.限制可能已被解除,但我建议你克制自己最大限度.舞台大小的4倍(足够小,合理平滑滚动,足够大,所以你不必一直在舞台上放置物体).
如果它不是您想要存储的实际像素信息,也许ByteArray可能是一种可能的选择.