我一直在玩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有关,不是在整个文件中读取,但我不确定?
希望我的方向正确。
答案 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)
要保存所有帧,save_all参数必须存在并设置为True。
因此,打开的图像可以通过以下方式保存:
image.save('filename.gif', save_all=True)