如何使用 python 和 pillow 编辑目录内的所有图像?

How can I edit all images inside of a directory with python with pillow?

我有一些 24 位深度的图像,我应该将它们转换为 8 位深度。 所以我可以为一张图片做,但对于多张图片我得到这个错误:

 a=img.convert("P", palette=Image.ADAPTIVE, colors=8)
AttributeError: 'list' object has no attribute 'convert'

图片:

我试过这段代码:

from PIL import Image
import os
os.chdir('D:\background')
img=os.listdir()
a=img.convert("P", palette=Image.ADAPTIVE, colors=8)
a.save('D:\test')
 

那么如果我想用pillow转换多个文件应该怎么做呢?

在此处查看文档 https://pillow.readthedocs.io/en/stable/reference/Image.html

img=os.listdir()img 是文件夹 'D:\background' 下的文件名列表。这是我的实现:

from PIL import Image
import os

base_dir_src = 'D:\background'
base_dir_dst = 'D:\test'
os.chdir()
for filename in os.listdir():
    with Image.open(filename) as img:
        converted_img = img.convert("P", palette=Image.ADAPTIVE, colors=8)
        converted_img.save(os.path.join(base_dir_dst, filename))