在 Linux 上将一堆 BMP 文件转换为 JPEG

在 Linux 上将一堆 BMP 文件转换为 JPEG

有人给我发了一堆 BMP 文件,我需要将它们转换为 JPEG。我可以使用 GIMP 逐个转换它们,但我更愿意一次性完成所有转换。我有 Ubuntu。

答案1

您可以使用 ImageMagick 的 mogrify 工具

mogrify -格式 jpg *.bmp

答案2

你很可能图像魔术师安装在 Ubuntu 上
可以做

convert filename.bmp filename.jpg

更新:

mogrify(由 回答hyperslug并提及cjm)也是一个不错的选择。

使用莫格里菲程序可调整图像大小、模糊、裁剪、去斑、抖动、绘制、翻转、连接、重新采样等。
此工具类似于转变除了原始图像文件会被您请求的任何更改覆盖
(除非您使用该选项更改文件后缀-format)。

答案3

让我对 salmonmoose 的回答做一点改动:

for i in `ls *.bmp`; do convert $i $i.jpg; done

上述操作有效,但会生成名为“bmp.jpg”的文件。您可以使用以下命令获取 .jpg 文件:

for i in *.bmp; do convert ${i} ${i%bmp}jpg; done

有关该命令man bash的详细信息,请参阅。部分表示字符串“${i}”,但不包含末尾的“bmp”子字符串。for${i%bmp}

还有其他操作可以转换“${i}”中的字符串。“$i”是“${i}”的简写。salmonmoosels *.bmp答案中的部分表示“执行ls *.bmp,然后 fori部分将每个用空格分隔的字符串分配给”。因为它匹配目录中的所有文件名,所以i实现了相同的效果。*.bmp

有一个缺点for- 如果目录中的文件名称中有空格,例如“婚礼图片 1.bmp”,它将被分配给 var 3 次i,执行以下命令:

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

在我的回答中,匹配“${i%bmp}”也失败了。

但有一个解决方案 - 您可以改用该find命令。请参阅man find了解详情。您应该输入类似以下内容(请在尝试之前使用手册页检查语法):

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(我对名字部分不是很确定,对部分也有些疑问-execman find先看看)

如果您想将所有图像合并到一个 .jpg 文件中,您可以将它们与其他过滤器连接起来,就像第一个答案中提到的那样。

答案4

使用 Linux 将 .bmp 转换为 .jpg:

for ii in *bmp;do base=`echo $ii|cut -d"." -f1`; convert $ii $base.jpg;done

结果:

foo2.bmp becomes foo2.jpg

相关内容