有没有办法检测UIImage / NSData是动画/ GIF?

时间:2014-10-20 16:22:24

标签: ios objective-c cocoa-touch uiimage nsdata

不完全确定他们是如何做到的,但是使用照片共享网站Imgur,文件扩展名似乎并不重要。参加此GIF:http://i.imgur.com/bNHPTot.gif如果我将.gif更改为.jpg,则结果相同:http://i.imgur.com/bNHPTot.jpg

如果我使用NSURLSession来下载后一个链接,是否有办法将结果NSData(或UIImage,如果我将其转换为动画)?

基本上,有没有办法检查下载的图像是否有动画?

2 个答案:

答案 0 :(得分:0)

如果我不得不猜测,我会说它是因为他们的服务器忽略了扩展并为您服务http://i.imgur.com/bNHPTot

从您提供的两个网址的HEAD请求返回的内容类型是" image / gif"。您可以检查响应的内容类型以确定基本的动画功能,但静态GIF将报告与动画相同的内容。你必须自己解码gif才能检测到多个帧。可能有一些图书馆可以帮助你解决这个问题。

答案 1 :(得分:0)

Wikipedia认为帧在gif文件中由Graphic Control Extensions(2字节标题21 F9)分隔。如果有多个GCE,你可以解析gif并假设它是动画的。

http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Animated_GIF