Невозможно обрезать изображение с помощью mini_magick

Я использую mini_magick в качестве интерфейса использования ImageMagick для управления некоторым изображением. Изменение размера работает нормально. Но когда я хочу обрезать изображение:

img = MiniMagick::Image.open(url)
img.crop('200x800!')

Постоянно выдает No such file

No such file or directory - /var/folders/c4/mqlwdx_d3kj6hqcnvbjr9mn80000gn/T/mini_magick20120504-11111-16kayc1.png

person nil    schedule 04.05.2012    source источник


Ответы (2)



На всякий случай, если кто-то использует Carrierwave для обрезки и загрузки изображения непосредственно в Amazon S3, для меня правильный способ сделать следующее:

image_uploader.rb

url=model.remote_image_url 
crop_params="#{w}x#{h}+#{x}+#{y}"
manipulate! do |img|
  img = MiniMagick::Image.open(url)
  img.crop(crop_params)
  img = yield(img) if block_given?
  img
end

Причина, по которой я добавляю img = MiniMagick::Image.open(url), заключается в том, что если я не укажу свое собственное изображение, это вызовет следующую ошибку:

mogrify.im6: geometry does not contain image `/tmp/mini_magick20150811-15523-ac8go1.jpeg'

Я думаю, что это какой-то временный путь по умолчанию, по которому mini_magick попытается найти изображение, но, поскольку изображение хранится удаленно в S3, он не смог его найти.

person Antonio Jha    schedule 11.08.2015