MiniMagick中的图像大小调整和裁剪算法

时间:2014-04-01 01:28:58

标签: ruby-on-rails ruby-on-rails-3 imagemagick minimagick

我正在运行一个接受用户屏幕截图的rails应用。我们希望在非常具体的维度上生成更小版本的屏幕截图(652x408。为什么?请问前端人员。)我们目前正在使用Carrierwave和Minimagick完成此任务。

我已经尝试过resize_to_fill和resize_to_fit调整大小的方法,但是它们总是留下一些带输入的空格。我试图诉诸我自己的自定义版本,但我对imagemagick语法很失落。

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

1 个答案:

答案 0 :(得分:4)

您可以使用Jcrop和Carrierwave裁剪图像。喜欢这种效果

enter image description here

这是一些代码https://github.com/luckyyang/imagecrop但是它使用的是Carrierwave的Paperclip 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

我对自己糟糕的英语感到抱歉。我希望这可以帮到你