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

时间:2019-06-01 18:37:20

标签: python image image-processing python-imaging-library bmp

我正在尝试使用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格式,但是,当我运行代码时,图像没有变化。

1 个答案:

答案 0 :(得分:0)

您几乎只需要对文件夹中的每个文件执行一个文件的操作即可。

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)

请注意,这会创建 new 图像文件,而使原始文件保持原样-换句话说,它不会重命名原始文件。如果要去除原稿,可以在循环中保存转换后的图像后,用os.remove()删除它们。