GIF解码发送内存警告,然后终止应用程序



当解码某些gif时,我的应用程序收到2-3个内存警告,然后被iOS杀死。gif的大小只有200kb,应该可以解码。

似乎每个使用adobeflash创建的gif都有相同的问题

我在这里创建了一个示例项目:https://github.com/amleszk/GifBlocking

在模拟器上运行会很好。在设备上运行会因内存不足而崩溃。捆绑的gif文件"rXYyQTo.gif"是唯一一个导致崩溃的文件

我已经尝试修复这个问题好几天了,怀疑它只是ImageIO框架中的一个错误

您似乎正在对内存中的图像进行解压缩。解压缩图像时,文件大小不是主要因素,实际内存是:
numberOfPixelInHeight*numberOfPixelInWidth*numberOfByte
numberOfByte大约是每个通道的位数,就像每个通道的8位(一个字节)的RGBA图像意味着1*4=4个字节
GIF没有alpha,每个通道的alpha可能也更少,但你对每个帧进行解压缩,所以你应该添加另一个复用因子:numberOfFrames
我建议您将每个帧保存在一个临时目录中。

最新更新