ImageMagick:如何在没有背景的情况下使用mogrify按比例调整大小

ImageMagick:如何在没有背景的情况下使用mogrify按比例调整大小,imagemagick,mogrify,Imagemagick,Mogrify,我遵循这个例子,这正是我想要对图像所做的,除了背景残留(即白色边框)。有没有办法做到这一点,并可能裁剪出白色背景?还有别的办法吗?重新调整大小需要成比例,因此我不仅要设置宽度重新调整大小限制或高度限制,还要按比例重新调整图像大小。您链接到的示例使用以下命令: mogrify \ -resize 80x80 \ -background white \ -gravity center \ -extent 80x80 \ -format

我遵循这个例子,这正是我想要对图像所做的,除了背景残留(即白色边框)。有没有办法做到这一点,并可能裁剪出白色背景?还有别的办法吗?重新调整大小需要成比例,因此我不仅要设置宽度重新调整大小限制或高度限制,还要按比例重新调整图像大小。

您链接到的示例使用以下命令:

mogrify             \
  -resize 80x80     \
  -background white \
  -gravity center   \
  -extent 80x80     \
  -format jpg       \
  -quality 75       \
  -path thumbs      \
   *.jpg
首先,
mogrify
有点危险。它会以内联方式处理原始文件,并覆盖原始文件。如果出了什么问题,你就丢失了你的原件,并被错误的结果所困扰。但是,在您的情况下,
-path thumbs
可以减轻这种危险,因为它确保结果将写入子目录thumbs

另一个ImageMagick命令,
convert
,可以保留原始图像,并执行与
mogrify
相同的操作:

convert             \
   input.jpg        \
  -resize 80x80     \
  -background white \
  -gravity center   \
  -extent 80x80     \
  -quality 75       \
   thumbs/output.jpg
如果想要相同的结果,但不是白色画布扩展(最初添加的目的是使结果成为方形80x80图像),只需去掉
-extent 80x80
参数(
-background white
gravity center
也是多余的):


我知道这是一个旧线程,但通过将-write标志与-set标志一起使用,可以在不覆盖原始文件的情况下写入同一目录中的文件:

mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg

如所述,%t是不带扩展名的文件名,%e是扩展名。因此image.jpg的输出将是一个缩略图像_small.jpg。

这是我每次想批量调整大小到1920x并保持纵横比时使用的命令

莫格里菲路-调整1920x1920大小-格式为“\u resized.jpg”-质量为70*.jpg


谢谢,库尔特,我会解决莫格里菲的问题。我不太确定它和convert之间有什么区别,但我确实设置了-路径以防万一。我当然不想覆盖主图像文件。实际上,
-resize1920x1920
保持纵横比,导致
max(width,height)
等于1920。
mogrify             \
  -resize 80x80     \
  -format jpg       \
  -quality 75       \
  -path thumbs      \
   *.jpg
mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg