Answers:
您可能已在Ubuntu上安装了ImageMagick。
这可以做,
convert filename.bmp filename.jpg
更新:
将mogrify
(通过回答hyperslug
和简称cjm
)也是一个不错的选择。
使用mogrify程序调整图像大小,模糊,裁剪,去斑点,抖动,绘制,翻转,合并,重新采样等等。
该工具类似于转换工具,只是原始图像文件会被您请求的任何更改覆盖
(除非您使用-format
选项更改文件后缀)。
让我对鲑鱼驼鹿做一些改动:
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
详细信息,请参见for
。该${i%bmp}
部分表示字符串“ $ {i}”,结尾没有“ bmp”子字符串。
还有其他操作可以转换“ $ {i}”中的字符串。“ $ i”是“ $ {i}”的简写。ls *.bmp
鲑鱼驼峰答案中的部分表示“执行ls *.bmp
,然后for i
部分将每个由空格分隔的字符串分配给i
”。*.bmp
因为它匹配目录中的所有文件名,所以可以达到相同的目的。
有一个缺点for
-如果目录中的文件名中带有空格,例如“ wedding picture 1.bmp”,则将其分配给i
var 3次,执行以下命令:
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 \;
(我不太确定名称部分,对此-exec
部分我有疑问,请man find
首先参阅)
如果要将所有图像合并到一个.jpg文件中,则可以将它们与其他过滤器连接起来,如第一个答案中所述。
for i in `ls *.bmp`; do convert $i $i.jpg; done
是的,这将产生一堆名为filename.bmp.jpg的文件,但可以完成工作。
ls
。