gpt4 book ai didi

python - Pillow 中自动调整图片大小

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:51 26 4
gpt4 key购买 nike

我希望给定目录中的所有图片都具有相同的大小。这就是我所拥有的:

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!")

问题是,它没有正确循环。它不是将图像固定在白色背景上,而是将之前的图像放在下一个上。希望这有点道理。

最佳答案

im_new 是在循环外创建的,因此您只有一个。在循环的一次迭代中对其所做的更改在以后的迭代中是可见的。尝试在循环内创建它。

for (dirname, dirs, files) in os.walk(dirPath):
for filename in files:
im_new = Image.new('RGB', (124,90), 'white')
#...

关于python - Pillow 中自动调整图片大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31879587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com