如何使用PilG来调整所有图片的大小?

2024-09-28 05:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个名为px/a的文件夹和它的所有子文件夹。在

如何使我使用此代码的过程自动化:

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') 

做一些像 对于gallery中每个文件夹中的每张图片 雷齐泽图片

谢谢你!。在


Tags: 代码fromimage文件夹imgsize过程图片
3条回答

要遍历匹配特定模式的文件,可以使用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

对于Python 3.5+

import glob    
from PIL import Image

for infile in glob.glob("/Gallery/**/*.jpg", recursive=True):

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

你可以用操作系统列表目录(路径)获取目录中的所有文件,以及os.path.join操作系统(directory,fileName)获取文件的整个路径。然后使用类似“for fileName in”的循环操作系统列表目录(directory):“循环访问目录中的所有文件。您可能需要添加一个检查,以确保您只对JPG文件进行操作。在循环中,使用已经编写的代码作为开始。我不会覆盖现有的图像,除非你把它们备份到某个地方。在

相关问题 更多 >

    热门问题