使用graphicsmagick或imagemagick调整图像大小,使其周围没有空白

bob*_*obb 5 image imagemagick image-processing graphicsmagick

我正在使用graphicsmagick 将图像大小调整为缩略图,但它添加了白色的周围边框填充。

在此输入图像描述

我正在使用的命令是:

gm convert matrix.jpg -resize "80x80>" -gravity center -extent 80x80 thumbnail.jpeg

正如您所看到的,图像周围有一些白色填充,但我不想要这样。理想情况下,我希望(整个图像而不仅仅是其中的一部分)填充所需的 80x80 输出尺寸。

如何在 imagemagick 或graphicsmagick 中实现这一点?

A.L*_*A.L 3

我对这张图片使用了 ImageMagick 。该解决方案需要知道输入图像的大小。

\n\n

输入

\n\n
\n

输入

\n
\n\n

该图像水平有 145 个像素,垂直有 200 个像素。

\n\n

庄稼

\n\n

从图像顶部裁剪:

\n\n
convert -crop 145x145+0+0 -resize 80x80 matrix.jpg thumbnail.jpeg\n
Run Code Online (Sandbox Code Playgroud)\n\n

我用来145x145从原始图像中提取一个正方形。+0+0是提取的正方形的偏移量,即左上角。

\n\n
\n

庄稼

\n
\n\n

以图像中心裁剪:

\n\n
convert -crop 145x145+0+27 -resize 80x80 matrix.jpg thumbnail.jpeg\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

庄稼

\n
\n\n

垂直偏移设置为是27因为我们必须删除顶部或底部的55( 200 - 145) 个像素,因此我们需要删除55 \xc3\xb7 2顶部的 27 ( ) 个像素和底部的 28 个像素。

\n\n

裁剪图像底部:

\n\n
convert -crop 145x145+0+55 -resize 80x80 matrix.jpg thumbnail.jpeg\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

庄稼

\n
\n\n

不裁剪调整大小

\n\n
convert -resize 80x80\\! matrix.jpg thumbnail.jpeg\n
Run Code Online (Sandbox Code Playgroud)\n\n

!参数后面的标志(按照\\!文档中的建议使用转义)resize强制 ImageMagick 忽略纵横比。

\n\n
\n

忽略纵横比

\n
\n