我有一个应用程序可以处理高分辨率图像(约100多万像素),而且我有一些内存问题。创建BitmapData对象时,它会分配内存来存储此图像。问题是,我已经有了一个带有这个图像像素的ByteArray(大约有400多MB),所以当创建BitmapData时,它会分配内存以存储我在ByteArray上的相同数据。
创建之后,我可以将ByteArray中的像素设置为BitmapData并释放ByteArray。但是,这个内存峰值有时会导致运行时引发异常,告诉系统内存不足。
有没有办法告诉BitmapData使用我自己的ByteArray?或者我不需要使用的任何其他解决方案加倍我需要的内存?
答案 0 :(得分:1)
如果有人需要这个,这就是我的所作所为:
我从套接字中获取包含图像像素的ByteArray。我从插座中读取这些像素的微小部分,所以我不是等待从插槽中加载整个图像,而是将这些小部件直接放入BitmapData中。这可以防止应用程序分配我实际需要的内存的两倍。