带有 ImageMagick 的方形缩略图(转换)?

mar*_*osh 34 imagemagick image-manipulation

如何使用 ImageMagick 创建方形/裁剪缩略图?裁剪如下。

裁剪

Jon*_*aun 57

Ignacio 链接到正确的文档,但为了方便起见,我将其内联粘贴到此处:

convert -define jpeg:size=200x200 original.jpeg  -thumbnail 100x100^ -gravity center -extent 100x100  thumbnail.jpeg
Run Code Online (Sandbox Code Playgroud)

同样,以下是 GraphicsMagick 的:

gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg
Run Code Online (Sandbox Code Playgroud)

解释:

  • -size 200x200 告诉 jpeg 解码器我们只需要这个分辨率,这样它就可以节省内存并更快地读取源图像
  • -thumbnail 100x100^ 快速调整大小使最短边 100
  • - gravity center 下一个操作居中
  • -extent 100x100 将图像应用到 100x100 画布
  • +profile "*" 不要将任何元信息保存到 jpeg(使生成的图像更小)

  • 当我在命令行(图形魔术之一)中使用它时,我在中心看到了图片,两侧填充了白色。不是所描述的那个。难道我做错了什么? (3认同)
  • 为什么尺寸不是 100x100 ? (3认同)
  • 如果您使用的是 Windows,则必须将 ^ 字符加倍才能转义它。例如:-thumbnail 100x100^^ (2认同)

Ign*_*ams 21

这在官方 ImageMagick 文档中的“Cut the Thumbnail to Fit”下进行了解释

另一种方法是,不是填充图像以适合我们想要的特定缩略图大小,而是切掉图像中不适合最终大小的部分。

当然,这意味着您实际上丢失了原始图像的某些部分,尤其是图像的边缘,但结果是图像中心部分的放大缩略图。这通常(但不总是)是图像的主要主题,因此它是一种实用的缩略图创建方法。

从 IM v6.3.8-3 开始,添加了特殊的调整大小选项标志 '^' 以使其更容易。我们只是使用此标志调整大小,然后裁剪掉超出所需大小的图像部分。

在示例命令的上下文中:

convert -define jpeg:size=200x200 hatching_orig.jpg  -thumbnail 100x100^ \
          -gravity center -extent 100x100  cut_to_fit.gif
Run Code Online (Sandbox Code Playgroud)

  • 可能……某种描述? (7认同)

小智 11

这是一种更简单的方法:

以下命令将较小的一侧调整为 100 像素并裁剪一个 100x100 的正方形。您可以添加一个-strip命令来减小文件大小。

convert original.jpg -resize "100^>" -gravity center \ 
                     -crop 100x100+0+0 -strip thumbnail.jpg
Run Code Online (Sandbox Code Playgroud)

与其他人不同的是,它并不试图节省内存。相反,它会做您想做的事,仅此而已。另外,它不会放大图像。

  • 谢谢,我不知道为什么当 OP 对此一无所知时,其他人为什么会过度复杂化他们的答案以试图节省内存。 (2认同)