我正在关注这个例子http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick,这正是我想要对图像做的,除了有背景剩菜(即白色边框)。有没有办法做到这一点,并可能裁剪出白色背景?还有另一种方法可以做到这一点吗?调整大小需要成比例,所以我不想设置宽度调整大小限制或高度限制,而是按比例调整图像大小。
3 回答
您链接到的示例使用此命令:
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
andgravity center
也是多余的):
convert \
input.jpg \
-resize 80x80 \
-quality 75 \
thumbs/output.jpg
或者
mogrify \
-resize 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
我知道这是一个旧线程,但是通过使用 -write 标志和 -set 标志,可以写入同一目录中的文件而不会覆盖原始文件:
mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg
如http://imagemagick.org/script/escape.php所述,%t 是不带扩展名的文件名,%e 是扩展名。所以 image.jpg 的输出将是一个缩略图 image_small.jpg。
这是我每次想将所有内容批量调整为 1920x 并保持纵横比时使用的命令。
mogrify - 路径。-resize 1920x1920 -format "_resized.jpg" -quality 70 *.jpg