使用基于中心点的ImageMagick和Paperclip调整图像大小

时间:2012-06-17 12:40:51

标签: imagemagick paperclip

假设我希望将图像大小调整为100px x 100px。

我上传的图片A为200px x 150px。我希望它根据中心点调整到... px x 100px。所以我实际上并不关心损失方面(调整大小的200px)。

如果我上传150px x 200px的图片B,同样应将其调整为100px x ... px。

最终结果总是100px x 100px,只是它位于中心。

我查看了以下示例:

但无法找到如何做到这一点。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

根据你的描述,我猜你在谈论

  1. 缩放图像以完全填充100x100像素,即使这意味着您获得100x123或123x100像素
  2. 切断图像中100x100像素范围之外的任何部分,最好从图像的死点向每侧切出50像素。
  3. 你所说的是缩略图裁剪。如果您使用的是Imagick,请查看方便的小方法Imagick::cropThumbnailImage()

    如果你不能通过PECL使用ImageMagick,这里是cropThumbnail的CLI:

    convert input.png -resize '100x100^' -gravity center -extent '100x100' output.png
    

答案 1 :(得分:1)

分两部分解决这个问题 - 首先让ImageMagick将图像缩小到最长最短边的100px。请查看man convert了解如何执行此操作。然后围绕中心点在较长的相对轴上进行裁剪。我认为这样做比一次性做更容易,但后者可以用IM进行。

(根据评论中的版本更正)