使用ImageScience裁剪图像

时间:2010-06-06 19:19:38

标签: ruby image-processing sinatra image-science

ImageScience很酷很轻。我在我的sinatra应用程序中使用它。但我无法理解如何裁剪不是方形的图像,如何制作两维缩略图。

正如我在ImageScience网站上找到的那样:

ImageScience.with_image(file) do |img|
  img.cropped_thumbnail(100) do |thumb|
    thumb.save "#{file}_cropped.png"
  end

  img.thumbnail(100) do |thumb|
    thumb.save "#{file}_thumb.png"
  end

  img.resize(100, 150) do |img2|
    img2.save "#{file}_resize.png"
  end
end

我可以只用一维来裁剪拇指并调整拇指大小,但我想使用两个,就像在RMagick中一样。例如,我想从图像裁剪100x200px框,或者我想制作宽度或高度不大于300(宽)或500(高)像素的缩略图。

2 个答案:

答案 0 :(得分:3)

改为使用Devil

Devil.with_image("horse.png") do |img|
    img.crop(0, 0, 100, 100)
    img.resize2(500, 500)
    img.save("horse_resized.jpg", :quality => 85)
end

答案 1 :(得分:0)

哇,我已经查看了ImageScience的来源,发现了很好的方法with_crop(left, top, right, bottom),它帮助解决了我的问题。

http://seattlerb.rubyforge.org/image_science/ImageScience.html