Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python脚本抓取动画gif_Python - Fatal编程技术网

用python脚本抓取动画gif

用python脚本抓取动画gif,python,Python,我一直在iOS上使用Python来创建一些自动化脚本 我有一个问题,我试图从远程url抓取动画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没有读取整个文件有关

我一直在iOS上使用Python来创建一些自动化脚本

我有一个问题,我试图从远程url抓取动画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没有读取整个文件有关,但我不确定


希望我的思路是对的。

你就快到了。您可以使用
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()
显示如何使用图像类保存gif。

根据:

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

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


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

我更愿意说这与如何打开和操作图像有关。这对
urlopen
有什么关系,它下载什么类型的URI,你会以同样的方式获取html和二进制文件?尝试将其保存为文件,并使用外部工具打开。这样似乎不会将其保存为gif?也许有一种不同的方式可以读取文件?你是否真的尝试过保存文件,而不是图像?您没有显示它的任何代码。您只需打开url并从中生成一个
图像
对象。我删除了一行,该行用于保存到pythonista for iOS中的剪贴板。。这是剪贴板。设置图片(url)当我粘贴图片时,它只是第一帧。。还使用photos.save_image()进行了测试,但如上所述,这些都是pythonista特有的