如何将多个 .img 图像转换为 .bmp 格式?

How to convert multiple .img images to .bmp format?

我正在尝试使用 Python 从当前为 .img 格式的文件夹中读取多个图像,并将它们全部转换为 .bmp 格式。

我只用一张图片就成功完成了,但是我对 Python 还很陌生,无法读取多张图片并进行转换。

这是我对 1 张图片的尝试:

from PIL import Image, ImageFilter
import sys

img = "hand1.img"
imgOut = "hand2bmp.bmp"
image = Image.open(img).convert('RGB').convert('L').save(imgOut)

这是我对多张图片的尝试:

from PIL import Image, ImageFilter
import sys, glob, os

folder = 'C:/Users/Josep/Documents/code/test_file/BMLs/BMLs_Original'

for filename in glob.iglob(os.path.join(folder,'*.bmp')):
    Image.open(filename).convert('RGB').convert('L').save(filename)
    os.rename(filename, filename[:-4] + '.bmp').save(filename)

我希望将文件转换为 .bmp 格式,但是,当我 运行 代码时,我发现图像没有变化。

您more-or-less只需要对文件夹中的每个文件执行您对一个文件所做的操作。

import glob, os, sys
from PIL import Image

folder = 'C:/Users/Josep/Documents/code/test_file/BMLs/BMLs_Original'

for filepath in glob.iglob(os.path.join(folder, '*.img')):
    image = Image.open(filepath).convert('RGB').convert('L')
    new_filepath = os.path.splitext(filepath)[0] + '.bmp'
    image.save(new_filepath)

请注意,这会创建 个图像文件,并保持原件完好无损——换句话说,它不会重命名原件。如果你想去掉原件,你可以在循环保存转换后的图像后用os.remove()删除它们。