2012-05-24 31 views
0

有没有一种方法,使RMagick调整这样一个形象:RMagick智能调整

  • 调整大小,使宽度和高度都小于,比如说,200像素,但保持宽高比
  • 如果宽度> 200和宽度>高度,调整大小,使得宽度= 200和调整高度相应
  • 如果高度> 200和高度>宽度,调整大小,使得高度= 200和调整宽度相应

EDIT:顺便说一句,我正在寻找this实现此目的的句法方式,而不是基于API的操作。

回答

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)