Обрезка изображения с помощью ImageScience - PullRequest
0 голосов
/ 06 июня 2010

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 ]

3 голосов
/ 07 июня 2010

Используйте Дьявол вместо:

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
0 голосов
/ 20 июня 2010

Ух ты, я посмотрел источники ImageScience и нашел отличный метод with_crop(left, top, right, bottom), который помог мне с моей проблемой.

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

...