2010-10-30 137 views
3

有没有一种方法可以让我在rmagick中缩放和成像,其中我设置了宽度,高度自动缩放以便图像包含相同的比例?rmagick自动缩放比例

回答

4

我使用resize_to_fit方法,它将使用提供的参数作为最大宽度/高度,但会保持宽高比。所以,这样的事情:

@scaled = @image.resize_to_fit 640 640 

这将确保无论是宽度还是高度不大于640时,但不会延长图像使它看起来滑稽。所以,你最终可能会得到640x480或480x640。还有一个resize_to_fit!方法可以就地转换

如果您想要调整为给定的宽度而不考虑边界框,则必须编写一个辅助函数。类似这样的:

@img = Magick::Image::read(file_name).first 

def resize_by_width image new_width 
    @new_height = new_width * image.x_resolution.to_f/image.y_resolution.to_f 
    new_image = image.scale(new_width, new_height) 

    return new_image 
end 

@resized = resize_by_width @img 1024 

希望有所帮助!

+0

你真棒,谢谢! – hojberg 2010-10-30 11:16:14