如何使用python代码调整图像大小



我正在使用python代码(即"resize.py"(调整一束图像的大小。但我得到了以下错误:

File "C:UsersNAJEEBAppDataLocalProgramsPythonPython38-32libsite-packagesPILImage.py", line 2205, in thumbnail
if x > size[0]:
TypeError: 'int' object is not subscriptable

这是代码:

import os
from PIL import Image, ImageOps
import glob
pathIn = 'F:/prac'
pathOut = 'F:/prac'
name = 'resize.py'
newsize = 300*300
int_desiredLength = 3
if not os.path.exists(pathOut):
os.makedirs(pathOut)
for i, file in enumerate(glob.glob(pathIn + '/*')):
fname = name + '_{str_0:0>{str_1}}.jpg'.format(str_0=i+1, str_1=int_desiredLength)
im = Image.open(file)
im.thumbnail((newsize), Image.ANTIALIAS)
apparent_size = im.size
apparent_h, apparent_w = im.size
desired_h, desired_w = newsize
delt_h, delt_w = abs(apparent_h - desired_h), abs(apparent_w - desired_w)
padding = (delt_h // 2, delt_w // 2, delt_h - (delt_h // 2), delt_w - (delt_w // 2))
im = ImageOps.expand(im, padding)
desired_size = im.size
print('{0}: {1}====>{2}'.format(fname, apparent_size, desired_size))
im.save(os.path.join(pathOut, fname))

您已声明size = 300*300

pil缩略图api要求大小为2元素元组,因此使用

size = (300, 300)

最新更新