2014-09-27 53 views
1

我想从原始图像生成25%,50%,75%大小的图像,但似乎载波的resize_to_fill/fit不支持百分比。任何人都知道如何做到这一点?如何按载波比例缩放图像

谢谢。

+0

为什么不只是计算正确的数字?你不能使用一个小功能或这样的翻译50%的宽度/长度? – Coffee 2014-09-27 17:00:35

+1

不知道我是否可以使用像:process:resize_to_fit => [image.width * 0.5,image.height * 0.5]。顺便说一下,每张上传的图片的大小都不一样。 – crax 2014-09-28 02:57:43

回答

5

经过一番研究,我发现了一个解决方案:

process :store_dimensions 

    version :r_3x do 
    process :resize_to_fit_by_percentage => 0.75 
    end 

    private 

    def resize_to_fit_by_percentage(percentage) 
    resize_to_fit model.width*percentage, nil 
    end 


    def store_dimensions 
    if file && model 
     model.width, model.height = ::MiniMagick::Image.open(file.file)[:dimensions] 
    end 
    end 

首先获得上传的图片的尺寸,然后定义自定义大小调整方法(这里是resize_to_fi_by_percentage),以及像代码这种方法调整图像确实。