2010-10-30 143 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