我正在使用GraphicsMagick将图像调整大小为缩略图,但是它会添加一个白色的边框填充。下面是我使用的命令:gm convert matrix.jpg -resize "80x80>" -gravity center -extent 80x80 thumbnail.jpeg。如您所见,图像周围有一些白色填充,但我不想要这个。理想情况下,我希望(整个图像而不仅仅是裁剪)填充所需的80x80输出大小。请问如何在ImageMagick或GraphicsMagick中实现此效果?
这张图片横向有 145 个像素,纵向有 200 个像素。
convert -crop 145x145+0+0 -resize 80x80 matrix.jpg thumbnail.jpeg
145x145
来从原始图像中提取一个正方形。 +0+0
是提取的正方形的偏移量,即左上角。
convert -crop 145x145+0+27 -resize 80x80 matrix.jpg thumbnail.jpeg
垂直偏移设置为27
,因为我们需要在顶部或底部删除55
(200-145
)像素,所以我们需要在顶部删除27个像素(55÷2
),并在底部删除28个像素。
convert -crop 145x145+0+55 -resize 80x80 matrix.jpg thumbnail.jpeg
convert -resize 80x80\! matrix.jpg thumbnail.jpeg
!
标记(如文档中建议的使用\!
进行转义)在resize
参数后强制ImageMagick忽略宽高比。
convert -resize 80x80!
压缩图像时会出现压缩过度的问题,这是有原因的吗?有没有方法可以解决它呢?与原始图片相比,它明显被压扁了(在高度上),使其宽高比发生变化。 - bob_cobb这将产生一个58x80的未裁剪图像,其纵横比与原始图像相同。此图像为58x80,因为ImageMagick使用原始图像的较大尺寸计算比例因子(在本例中为80/200),并按照相同的比例因子缩小较小尺寸以保持宽高比。convert "matrix.jpg" -resize "80x80" -gravity center -extent 80x80 -trim "thumbnail.jpg"
在Windows 7中测试了ImageMagick 6.8.9。@AL语法可能适用于Linux。convert "matrix.jpg" -resize "80x80!" -gravity center -extent 80x80 "thumbnail.jpg"