0

在解码某些 gif 时,我的应用收到 2-3 条内存警告,然后被 iOS 杀死。gif大小只有200kb,解码应该没问题。

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

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

在模拟器上运行会正常工作。在设备上运行会因内存不足而崩溃。捆绑的 gif 文件“rXYyQTo.gif”是唯一崩溃的文件

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

4

1 回答 1

0

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

于 2013-07-28T09:48:14.730 回答