Я хочу, чтобы все изображения в данном каталоге имели одинаковый размер. Вот что у меня есть:
import PIL
import os
import math
from PIL import Image
dirPath = r"C:\\a"
dirList = os.listdir(dirPath)
outPath = r"C:\\b"
im_new = Image.new('RGB', (124,90), 'white')
new_w = 124
new_h = 90
for (dirname, dirs, files) in os.walk(dirPath):
for filename in files:
print("Opening:"+filename)
thefile = os.path.join(dirname,filename)
im = Image.open(thefile)
old_w, old_h = im.size
x1 = int(math.floor((new_w - old_w) / 2))
y1 = int(math.floor((new_h - old_h) / 2))
im_new.paste(im, (x1, y1, x1 + old_w, y1 + old_h))
print("Saving:"+filename)
outfile = os.path.join(outPath,filename)
im_new.save(outfile, "PNG")
print("Done!")
Дело в том, что он не зацикливается правильно. Вместо того, чтобы зафиксировать изображение на белом фоне, он просто перебрасывает предыдущие на следующие. Надеюсь, это имеет смысл.