RMagick智能调整大小

时间:2012-05-24 12:55:08

标签: imagemagick rmagick

有没有办法让RMagick调整像这样的图像:

  • 调整大小,使宽度和高度都小于200px,但保持纵横比
  • 如果宽度> 200和宽度>高度,调整大小以使宽度= 200并相应调整高度
  • 如果身高> 200和高度> width,调整大小以使height = 200并相应地调整宽度

编辑:顺便说一句,我正在寻找实现这一点的this语法方法,而不是基于API的操作。

1 个答案:

答案 0 :(得分:0)

此方法应该有效,图像是Rmagick图像,宽度和高度是整数(图像的最大尺寸)

def resize_to_limit(image,width, height)
  geometry = Magick::Geometry.new(width, height, 0, 0, Magick::GreaterGeometry)
  image.change_geometry!(geometry) do |new_width, new_height, img|
    img.resize!(new_width, new_height)
  end
  image
end

离。我希望将图像调整为2000,如果它大于那个,保留纵横比

image = resize_to_limit(image,2000,2000)