【问题标题】:GIF decoding sends memory warnings then kills the appGIF解码发送内存警告然后杀死应用程序
【发布时间】:2013-07-28 00:14:49
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 如果您认为这是一个错误,请通过Bug Reporter报告错误
  • 你用仪器分析过吗?

标签: ios crash uiimage out-of-memory


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-03-15
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    相关资源
    最近更新 更多