终端中是否有一个简单的一行程序可以:
- 将文件夹中的所有 png 文件转换为 jpg 文件并保留基本文件名。
- 将所有这些文件的大小调整为指定的宽度,同时保留纵横比。
这种方法可行,但是原始文件名不会被保留,而且我无法通过命令的语法来判断纵横比是否被保留:
Convert -resize 1200x900 *.png *.jpg
理想情况下我希望这样的事情能够发挥作用:
Convert -resize -width 1200 *.png *.jpg
我已经阅读了关于 ask ubuntu 的十多个答案,但都涉及编写循环、脚本、大量变量语法等。感觉至少必须有一些简单的东西才能让文件名正确显示。
我可以接受 1200x900 的宽度并保持纵横比,但是当我需要保持高度时该怎么办呢?事实上,有时我确实需要这样做。
谢谢你!
更新:标记的答案以一种非常简单的方式保留了文件名,这解决了我的主要问题。第一条评论引出了如何在指定所需宽度或高度的同时保留纵横比。总而言之,我现在有了以下内容,可以解决我想要的一切。
保留宽度:
mogrify -resize 1200x -format jpg *.png
保持高度:
mogrify -resize x800 -format jpg *.png
标记的答案还添加了 -quality 标志,这非常好:
mogrify -resize 1200x -format jpg -quality 75 *.png
作为奖励,我喜欢 mogrify 覆盖以前的输出,所以如果我改变对大小或质量的想法,我不会删除一堆额外的文件。
非常感谢大家!
答案1
只有一个没有脚本的命令?不是使用脚本convert
,而是使用脚本mogrify
(也是 ImageMagick 的一部分):
mogrify -resize 1200x900 -format jpg *.png
笔记:
mogrify
检查每张图像的水平度或垂直度并保留纵横比。- 查看
man mogrify
更多选项,例如:-quality 100
保持图像质量-path /another/path
将新图像放在另一个路径(调用前必须存在)
警告:如果您不更改输出格式(相对于输入格式)并且不选择其他输出目录,mogrify
则会覆盖当前图像文件