您的位置:首页 > 理论基础 > 计算机网络

获取网络gif时候报错 <Error>: ImageIO: _CGImagePluginInitGIF malformed GIF frame#0

2016-03-04 17:51 567 查看
最近在iPad项目中需要获取gif图片,并展示(如何展示gif【点击】)但是遇到下面的问题。代码如下,可自行测试一下,data有值,但是image = nil:

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://img.blog.csdn.net/20160304173605864"]];//竖屏gif 可以解析http://img.blog.csdn.net/20160304174457758
     UIImage *image = [UIImage imageWithData:data];

结果表现如下:

gif图片下载是成功了(gif文件不大,才7k),分辨率是2014*1536,
1. 虽然已经获取到NSData了。从data转换到UIImage的时候出错:
2. 分辨率比较高的横屏gif图片,容易解析不成功,我们又尝试竖屏的gif,是可以解析成功的
3. iPhone 平台,无论是横屏gif,还是竖屏gif,都是可以解析的成功
4. 模拟器上可以下载,并解析成功

错误输出是

<Error>: ImageIO: _CGImagePluginInitGIF malformed GIF frame#0 (2048 x 1536) - [canvasSize: 3145728 frameDataSize: 0 adjustment: 3315]

难道是因为分辨率太大了?查阅了一些资料:stackoverflow上有网友说是Apple的bug【点击】,也有说是gif含有透明帧。现在还不确定什么导致的,欢迎解决该问题的网友留言
我把问题的gif放到这儿,大家可以自行测试一下。
下图是横屏gif



下图是竖屏gif

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: