需要更简单的 ImageMagick 转换语法

需要更简单的 ImageMagick 转换语法

终端中是否有一个简单的一行程序可以:

  1. 将文件夹中的所有 png 文件转换为 jpg 文件并保留基本文件名。
  2. 将所有这些文件的大小调整为指定的宽度,同时保留纵横比。

这种方法可行,但是原始文件名不会被保留,而且我无法通过命令的语法来判断纵横比是否被保留:

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则会覆盖当前图像文件

相关内容