我如何得到一个图片的大小与PIL或任何其他Python库?
当前回答
from PIL import Image
im = Image.open('whatever.png')
width, height = im.size
根据文档。
其他回答
from PIL import Image
im = Image.open('whatever.png')
width, height = im.size
根据文档。
以下给出了维度和渠道:
import numpy as np
from PIL import Image
with Image.open(filepath) as img:
shape = np.array(img).shape
这是一个完整的例子,从URL加载图像,创建PIL,打印大小和调整大小…
import requests
h = { 'User-Agent': 'Neo'}
r = requests.get("https://images.freeimages.com/images/large-previews/85c/football-1442407.jpg", headers=h)
from PIL import Image
from io import BytesIO
# create image from binary content
i = Image.open(BytesIO(r.content))
width, height = i.size
print(width, height)
i = i.resize((100,100))
display(i)
你可以使用枕头(网站,文档,GitHub, PyPI)。Pillow具有与PIL相同的界面,但与Python 3一起工作。
安装
$ pip install Pillow
如果您没有管理员权限(Debian上的sudo),您可以使用
$ pip install --user Pillow
关于安装的其他注意事项在这里。
Code
from PIL import Image
with Image.open(filepath) as img:
width, height = img.size
速度
30336张图片需要3.21秒(jpg格式从31x21到424x428,训练数据来自Kaggle上的国家数据科学碗)
这可能是使用Pillow而不是自己编写的东西的最重要原因。您应该使用Pillow而不是PIL (Python -imaging),因为它适用于Python 3。
替代方案#1:Numpy(已弃用)
我保留scipy. nmage .imread,因为信息仍然存在,但请记住:
Imread已弃用!imread在SciPy 1.0.0中已弃用,在1.2.0中已被移除。
import scipy.ndimage
height, width, channels = scipy.ndimage.imread(filepath).shape
第二种选择
import pygame
img = pygame.image.load(filepath)
width = img.get_width()
height = img.get_height()
由于scipy的imread已弃用,请使用imageio.imread。
Install - pip安装imageio 使用height, width, channels = imageio.imread(filepath).shape
推荐文章
- 尝试模拟datetime.date.today(),但不工作
- 将行添加到数组
- 如何在Python中直接获得字典键作为变量(而不是通过从值搜索)?
- Python:为什么functools。部分有必要吗?
- 如何用python timeit对代码段进行性能测试?
- Python迭代器中的has_next ?
- ConfigParser中的列表
- 由于环境错误无法安装包:[Errno 13]
- 如何测试一个字符串是否包含列表中的一个子字符串,在熊猫?
- 'datetime'模块没有'strptime'属性
- 如何将字典保存到文件?
- 如何在Python中绘制网格?
- 存储图像在SQL Server?
- 在Python中元组比较是如何工作的?
- 我如何写好的/正确的包__init__.py文件