我正在按照这个例子http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick操作图片,效果很符合我的期望,但是有一个问题就是生成的缩略图带有白色背景边框,我想把这个背景边框去掉,只保留图像部分(即裁剪掉白色背景),请问有什么办法可以实现吗?如果不能,那是否还有其他方法可以达到同样的效果?另外,缩放比例需要保持一致,所以我不想只设置宽度或高度限制来进行调整,而是需要等比例缩放图片。
我正在按照这个例子http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick操作图片,效果很符合我的期望,但是有一个问题就是生成的缩略图带有白色背景边框,我想把这个背景边框去掉,只保留图像部分(即裁剪掉白色背景),请问有什么办法可以实现吗?如果不能,那是否还有其他方法可以达到同样的效果?另外,缩放比例需要保持一致,所以我不想只设置宽度或高度限制来进行调整,而是需要等比例缩放图片。
你链接的示例使用了这个命令:
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
也是多余的):
convert \
input.jpg \
-resize 80x80 \
-quality 75 \
thumbs/output.jpg
或者mogrify \
-resize 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
这是我每次想要批量调整大小并保持长宽比为1920x的命令。
mogrify -path . -resize 1920x1920 -format "_resized.jpg" -quality 70 *.jpg
-resize 1920x1920
保持纵横比,导致 max (width,height)
等于 1920。 - Déjà vu我知道这是一个老帖子,但是使用-set标志和-write标志,可以在不覆盖原始文件的情况下将内容写入到同一目录中的文件中:
mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg