【发布时间】:2021-09-18 06:49:23
【问题描述】:
我有一个不同网址的列表。当你点击这个 url 时,上面可能有一张图片或一个 gif。我的任务是将 gif 和图片转换为 3d numpy 数组。如果我们谈论 gif,那么这个 gif 上的第一张图片就足够了。我写了这段代码:
import numpy as np
from PIL import Image
my_url = 'https://......'
im = Image.open(requests.get(my_url, stream=True).raw)
np_im = np.asarray(im)
print(np_im.shape)
问题是,当我在 my_url 中有图片链接时,np_im 是 3 维(r g 和 b 的图片大小为 3 *)。如果我这样做print(type(im)) 我会得到PIL.PngImagePlugin.PngImageFile
但是当我的链接上有 gif 时,np_im 只有二维(只有长度和宽度,没有 r g 和 b)。如果我这样做print(type(im)),我会得到PIL.GifImagePlugin.GifImageFile。如何获得 gif 的 3 维 np 数组?当我打印 im 来控制台时,它仍然像一张图片,所以仍然应该有 r g 和 b 的解释
【问题讨论】:
标签: python image numpy python-imaging-library gif