本文共 1692 字,大约阅读时间需要 5 分钟。
python 调整图像大小
我喜欢 ,并且已经学习了一段时间。 前段时间,我编写了一个Python脚本,需要调整一堆图像的大小,同时保持长宽比(比例)不变。 因此,我环顾四周,发现了 。
您需要安装PIL才能使代码正常工作。 请注意,尽管也可以使用称为的“友好叉”,但似乎不再维护PIL。 要在基于的系统上安装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)下重新发布。
翻译自:
python 调整图像大小
转载地址:http://qjdzd.baihongyu.com/