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

Posted

技术标签:

【中文标题】如何将多个 .img 图像转换为 .bmp 格式?【英文标题】:How to convert multiple .img images to .bmp format? 【发布时间】:2019-06-01 18:37:20 【问题描述】:

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

【问题讨论】:

为什么需要古老的老式 Microsoft BMP 格式的文件? PNG肯定更可取吗? 我志愿服务的人要求提供 BMP 格式的图像。如果由我决定,我会同意你的看法。 @ArtificialIntelligenceDev 您不应在问题标题中添加 [SOLVED],因此您只需将其中一个答案标记为正确 我很抱歉。我两者都做了,认为在浏览问题的潜在解决方案时可以节省人们的时间。我会确保我以后不会这样做。 【参考方案1】:

您或多或少只需要对文件夹中的每个文件执行您对一个文件所做的操作。

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()删除它们。

【讨论】:

非常感谢。我很感激并且可以确认,这正是我想要做的。 人工智能开发:谢谢。我注意到我在最后一行使用了错误的变量并修正了我的答案——但听起来你已经明白了…… 正确。再次感谢您。

以上是关于如何将多个 .img 图像转换为 .bmp 格式?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 BMP 格式图像的 Base64 字符串

怎么将.jpg .bmp .gif 图片转换成 iso exe res dll 等格式?

Mat 图像和 BMP格式图像的相互转换

如何在 C++ 中将图像从 .bmp 转换为 .png

在 C++ 中将 bmp 转换为 LINEAR jpeg

图像格式转换之BMP格式转换为JPG格式