首页 > 解决方案 > 以与 png 相同的方式使用来自 url 的 gif 的第一帧进行图像处理?

问题描述

我正在尝试从 url 获取 gif 的第一帧,并仅将第一帧用于不同的图像处理。具体来说,获取像素的颜色。但是,当我尝试时,我会收到诸如“'GifImageFile' 对象不可下标”和“'NoneType' 对象不可下标”之类的错误。

我将要处理的 gif 实际上都只是一帧而不是动画。由于某种原因,它们只是以这种格式而不是 pngs/jpeg 保存,并且它们似乎在 pngs/jpegs 成功的地方失败了。我真的只是希望能够像处理 pngs/jpegs 一样处理 gif,我认为抓住第一帧就可以了。

from PIL import Image, ImageStat
from io import BytesIO
import requests

image = requests.get('link.gif', stream=True).content
image = Image.open(BytesIO(image))
image.seek(0)

color = image[1,1]

标签: pythonpython-imaging-library

解决方案


我最终在这篇文章中找到了我需要的信息:使用 Python PIL 从动画 GIF 中获取像素颜色

我更新的代码:

from PIL import Image, ImageStat
from io import BytesIO
import requests

image = requests.get('link.gif', stream=True).content
image = Image.open(BytesIO(image))
rgb_im = image.convert('RGB')

color = rgb_im.getpixel((1, 1))

推荐阅读