使用mini_magick调整图像大小

4

我的服务有网页版和iPhone版。在iPhone上,我们通过在上传时进行裁剪来确保用户提交的是正方形图片。我们也允许在网站上上传图片,但是我们没有这样的功能。

因此,我想将任何上传的图片缩放到适合612 * 612区域的大小。最好的方法是什么?

我正在使用Ruby / mini_magick。

1个回答

12
你可以使用 MiniMagick 中的 resize 方法,GitHub 页面上有示例:

https://github.com/minimagick/minimagick

你可能已经将图像作为一堆内存中的字节。所以可以像下面这样实现:
image = MiniMagick::Image.read(your_image_bytes)
image.resize('612x612')
scaled_image_bytes = image.to_blob
# Or image.write(filename)

MiniMagick使用标准的ImageMagick几何字符串进行大小调整,并从精细手册中了解到,WxH表示一个几何字符串:

给出高度和宽度的最大值,保留纵横比。

因此,使用'612x612'将缩放图像以适应612像素正方形,同时保持纵横比。

您还可以使用Jcrop允许您的网页用户剪裁上传的图像以适合一个正方形。


1
另一个值得一看的宝石是CarrierWave,它能够有效减少使用MiniMagick时的痛苦。其中有几个选项,包括resize_and_pad,这将确保您拥有一个正方形的图像,但不会裁剪任何重要部分。我们与JCrop一起使用它。 - Tom Harrison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接