如何使用 ImageMagick 创建方形/裁剪缩略图?裁剪方法如下。
答案1
ImageMagick 官方文档对此进行了解释,“剪切缩略图以适合”:
另一种方法是,不是填充图像以适合我们想要的特定缩略图大小,而是剪掉图像中不适合最终尺寸的部分。
当然,这意味着您实际上会丢失原始图像的某些部分,特别是图像的边缘,但结果是图像中心部分的放大缩略图。这通常(但并非总是)是图像的主要主题,因此这是一种实用的缩略图创建方法。
从 IM v6.3.8-3 开始,添加了特殊调整大小选项标志 '^' 以简化此操作。我们只需使用此标志调整大小,然后裁剪超出所需大小的图像部分。
在示例命令的上下文中:
convert -define jpeg:size=200x200 hatching_orig.jpg -thumbnail 100x100^ \
-gravity center -extent 100x100 cut_to_fit.gif
答案2
Ignacio 链接到了正确的文档,但是为了方便起见,我将在这里将其粘贴:
convert -define jpeg:size=200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 thumbnail.jpeg
类似地,以下是针对 GraphicsMagick 的:
gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
解释:
-size 200x200
告诉 jpeg 解码器我们只需要这个分辨率,这样它可以节省内存并更快地读取源图像-thumbnail 100x100^
快速调整大小,使最短边为 100- gravity center
将下一个操作置于中心-extent 100x100
将图像应用到 100x100 画布+profile "*"
不要将任何元信息保存到 jpeg(使生成的图像更小)
答案3
这是一个更简单的方法:
以下命令将较小的一侧调整为 100 像素并裁剪为 100x100 的正方形。您可以添加-strip
命令来减小文件大小。
convert original.jpg -resize "100^>" -gravity center \
-crop 100x100+0+0 -strip thumbnail.jpg
与其他程序不同,它不会尝试节省内存。相反,它会执行您想要的操作,而不会执行更多操作。此外,它不会对图像进行放大。
答案4
我认为你正在寻找类似的东西:
convert -crop 100x100+50+50 input_image.jpg output_image.jpg
哪儿100x100
是尺寸最后一个矩形50x50
和抵消。