这是我询问的有关我正在进行的同一项目的另一个问题的链接.我认为这一点背景会有所帮助.
对于那些懒得打开这个问题的新标签的人,我会总结一下我在这里要做的事情:我从4scrape下载了大约250,000张图片,我想通过GIF找到哪些是动画与否.我需要以编程方式执行此操作,因为我真的不觉得我的灵魂(或我与我的女朋友的关系)可以使用从4chan查看几千个GIF来查看它们是否有动画.如果您知道4chan的性质,那么您就知道图像的本质(即"山雀或GTFO").
我知道PHP和Python,但愿意探索其他解决方案.在Windows上运行的独立软件也可以使用.
非常感谢!
bob*_*nce 18
使用Python和PIL:
from PIL import Image
gif = Image.open('path.gif')
try:
gif.seek(1)
except EOFError:
isanimated = False
else:
isanimated = True
Run Code Online (Sandbox Code Playgroud)
Den*_*aia 13
如果您使用的是Linux(或任何带有ImageMagick的系统),您可以使用单行shell脚本和identify
程序:
identify *.gif | fgrep '.gif[1] '
Run Code Online (Sandbox Code Playgroud)
我知道你说你更喜欢PHP和Python,但你也说你愿意探索其他解决方案.:)
这将添加属性
is_animated
, 以检查图像是否具有多个图层或框架。
用法示例:
from PIL import Image
print(Image.open("test.gif").is_animated)
Run Code Online (Sandbox Code Playgroud)
我从来没有见过会告诉你的程序.但是GIF是块结构化格式,您可以检查文件中是否存在指示动画GIF的块.
从下面提到的维基百科文章:在偏移量0x30D处,GIF文件中的应用程序扩展(即:3字节幻数21 FF 0B)块,后跟幻数4E 45 54 53 43 41 50 45 32 9at偏移量0x310表示剩下的该文件包含多个图像,它们应该是动画的.
维基百科的文章确实更好地解释了它,下面提到的格式文档扩展了维基文章.
因此,您可以使用Python编写的程序解析GIF(我多年前使用C解析了GIF,主要是移动文件指针并读取字节的练习).确定AE是否存在正确的3字节ID,然后是9字节幻数.
见http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Animated_.gif
另见http://www.martinreddy.net/gfx/2d/GIF87a.txt
另见http://www.martinreddy.net/gfx/2d/GIF89a.txt
对不起,我能为你做到最好.
归档时间: |
|
查看次数: |
11866 次 |
最近记录: |