用python脚本抓取动画gif

时间:2014-07-11 00:06:30

标签: python

我一直在玩iOS上的Pythonista来创建一些自动化脚本。

我有一个问题,我试图从远程网址抓取动画gif。我想出了以下脚本。

import Image
from urllib import urlopen
from io import BytesIO

url = "http://someurl.com/funny.gif"
img = Image.open(BytesIO(urlopen(url).read()))

我得到的图片但它似乎只是gif的第一帧?我猜它与BytesIO有关,不是在整个文件中读取,但我不确定?

希望我的方向正确。

2 个答案:

答案 0 :(得分:2)

你几乎就在那里。您使用img.seek来推进帧。所以..

import Image
from urllib import urlopen
from io import BytesIO
url = 'http://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif'

img = Image.open(BytesIO(urlopen(url).read()))

# Start with first frame
img.seek(0)
#img.show()

# Advance by one
img.seek(img.tell() + 1)
#img.show()

Here's a SO post显示如何使用Image类保存gif。

答案 1 :(得分:1)

根据Pillow Manual

  

要保存所有帧,save_all参数必须存在并设置为True。

因此,打开的图像可以通过以下方式保存:

image.save('filename.gif', save_all=True)