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