首页 > 解决方案 > 在 PIL 中将图像的尺寸更改为一半

问题描述

有一张尺寸为 1920 x 1080 的图像,我想将其缩小到一半

我的代码:-

from PIL import Image
image = Image.open('MysticHorizon.jpg')
# new_image = image.resize((960, 540)) I dont want to do it like this
# new_image.save('imageresized.jpg')
i = (image.size)
for a in i:
    a = int(a/2)
    print(a)
    
for j in a:
    print(j, end= ",")
newimage = image.resize((a))
newimage.save('halfresized.jpg')

我收到一个错误

" for j in a: TypeError: 'int' object is not iterable"

标签: pythonimage-processing

解决方案


size 方法返回一个元组。第一个循环拆分元组,第二个循环尝试迭代元组的最后一个整数元素,因此出现错误。

要减小图像大小,请尝试以下代码:

from PIL import Image
image = Image.open('MysticHorizon.jpg')
i = image.size   # current size (height,width)
i = i[0]//2, i[1]//2  # new size
newimage = image.resize(i)
newimage.save('halfresized.jpg')

推荐阅读