python 调整图像大小_使用Python调整图像大小

本文介绍了如何使用Python的PIL库在保持原图长宽比不变的情况下调整图像大小。首先需要安装PIL,然后通过计算比例来确定新的高度,确保图像不失真。代码示例展示了如何将图像调整为指定宽度,并提供了调整高度时保持宽度成比例的变体。
摘要由CSDN通过智能技术生成

python 调整图像大小

我喜欢Python ,并且已经学习了一段时间。 前段时间,我编写了一个Python脚本,需要调整一堆图像的大小,同时保持长宽比(比例)不变。 因此,我环顾四周,发现了PIL(Python Imaging Library)

您需要安装PIL才能使代码正常工作。 请注意,尽管也可以使用称为Pillow的“友好叉”,但似乎不再维护PIL。 要在基于Debian的系统上安装PIL,请以root用户身份在终端中运行以下命令:

 aptitude install python-imaging 

现在是用于在保持宽高比的同时调整图像大小的Python代码。


   
   
import PIL
from PIL import Image

   
   
basewidth = 300

img = Image. open ( ‘fullsized_image. jpg ')

wpercent = (basewidth / float(img.size[0]))

hsize = int((float(img.size[1]) * float(wpercent)))

img = img.resize((basewidth, hsize), PIL.Image.ANTIALIAS)

img.save(‘resized_image.jpg'
)

这几行Python代码将使用PIL将图像( fullsized_image.jpg )调整为300像素的宽度,该宽度设置为变量basewidth和与新宽度成比例的高度。 通过确定原始宽度(img.size [0])的300个像素的百分比,然后将原始高度(img.size [1])乘以该百分比,可以计算出比例高度。 结果高度值保存在变量hsize中。

如果您需要不同的图像宽度,则可以将基本宽度更改为任何其他数字。 另外,请注意,我将调整大小后的图像保存为另一个名称resized_image.jpg ,因为我也想保留完整大小的图像( fullsized_image.jpg )。 当然,您不必这样做。 如果需要,可以使用相同的文件名用调整大小后的图像覆盖完整尺寸的图像。

注意:如果在Zope中将此脚本用作外部方法,则需要PIL import Image中的行以避免名称空间与Zope的Image冲突。

如果高度是固定的,宽度是成比例变化的,则几乎是同一件事,您只需要稍微改变一下即可:


   
   
baseheight = 560
img = Image. open ( ‘fullsized_image. jpg ')
hpercent = (baseheight / float(img.size[1]))
wsize = int((float(img.size[0]) * float(hpercent)))
img = img.resize((wsize, baseheight), PIL.Image.ANTIALIAS)
img.save(‘resized_image.jpg'
)

注意, basewidth现在是baseheight ,因为height是固定的。 在第三行中,我们正在计算高度百分比,因此我们需要img.size [1]而不是img.size [0] 。 size属性是一个元组,包含以像素为单位的宽度和高度。 size [0]表示第一个元组元素,它是宽度,而size [1]是第二个元素,它是高度。 第4行还具有在size [0](宽度)和size [1](高度)之间切换的功能。

最初在Dayo Ntwari的博客上发布,并经许可在知识共享(Creative Commons)下重新发布。

翻译自: https://opensource.com/life/15/2/resize-images-python

python 调整图像大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值