2014-04-01 81 views
2

我正在运行一个接受用户屏幕截图的rails应用程序。我们正在寻求在一个非常具体的维度上生成更小版本的屏幕截图(652x408。为什么?请问前端人员)。我们目前使用Carrierwave和Minimagick来实现这一点。MiniMagick中的图像调整大小和裁剪算法

我试过resize_to_fill和resize_to_fit调整大小的方法,但他们总是留下一些输入空白。我试图诉诸我自己的习惯,但我迷上了imagemagick语法。

无论如何,我试图实现这一点,但我不知道最好的方式去做。有这种事情的标准算法吗?

回答

4

您可以使用Jcrop和Carrierwave裁剪图像。这样的效果

enter image description here

下面是一些代码https://github.com/luckyyang/imagecrop但它Carrierwave的使用回形针instand。

在carriewave,有一些代码

version :thumb do 
    process :crop 
    resize_to_fill(240, 320) 
    end 

    # crop image 
    def crop 
    if model.crop_x.present? 
    resize_to_limit(1280, 1280) 
    manipulate! do |img| 
     x = model.crop_x 
     y = model.crop_y 
     w = model.crop_w 
     h = model.crop_h 
     img.crop("#{w}x#{h}+#{x}+#{y}") 
     img 
    end 
    end 
end 

我感到歉疚与我的英语不好。我希望这可以帮助你