如何使用PIL和维护比率调整所有图像的大小?

时间:2017-11-05 21:09:54

标签: python image-resizing

我有一个名为/ Gallery /的文件夹,它有包含大量图像的子文件夹,我需要调整宽度为800px的所有文件。

如何自动执行我正在使用此代码的过程:

from PIL import Image

basewidth = 800
img = Image.open('imagename.jpg')
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save('imagename.jpg') 

做类似的事情 对于图库中每个文件夹中的每张图片    rezizepicture

谢谢!。

3 个答案:

答案 0 :(得分:0)

for Python 3.5 +

[[2],[2,0],[2,0,0],[2,0,0,1],[0,0,1],[0,1],[1],[3],[5],[3,5]]

答案 1 :(得分:0)

您可以使用os.listdir(path)获取目录中的所有文件,使用os.path.join(directory,fileName)获取文件的完整路径。然后使用像“for fileName in os.listdir(directory):”这样的循环遍历目录中的所有文件。您可能需要添加检查以确保仅对JPG文件进行操作。在循环内部,使用您已编写的代码作为开始。我不会覆盖现有的图像,除非你将它们备份到某个地方。

答案 2 :(得分:0)

要遍历匹配特定模式的文件,您可以在pathlib中使用globs。这是一个示例,用于标识所有子目录中具有jpg扩展名的所有文件。

>>> import pathlib
>>> p = pathlib.Path(".\Gallery")
>>> for img_file in p.rglob("*.jpg"):
...   print(img_file)
...
Gallery\top1.jpg
Gallery\top2.jpg
Gallery\sub1\sub1.jpg
Gallery\sub2\sub2.jpg
Gallery\sub2\sub3.jpg
Gallery\sub3\sub4.jpg