Я пишу обрезку изображения, где передаю размеры области посева почтовому запросу, загружаю изображение из URL-адреса, указанного в теле запроса, и использую RMagick для обрезать изображение по спецификациям. Так как мне нужно настроить область кадрирования к изображению, мне нужно ширину и высоту изображения, но при попытке доступа к ним, они оба 0.Использование RMagick на Кубе продолжает возвращать 0 в виде ширины и высоты изображения
require "open-uri"
require "RMagick"
img = Magick::Image.from_blob(open(params['image_url']).read).first
Проблема здесь - эти два значения равны нулю с любым URL изображения.
width = img.columns
height = img.rows
Здесь я пытаюсь обрезать изображение в соответствии с указанными параметрами, переданными в запросе на отправку, а затем записать его в файл.
img.crop!(params['image_x'].to_f * width, params['image_y'].to_f * height, params['image_width'].to_f * width, params['image_height'].to_f * height, true)
img.write image_name
Все остальное работает отлично - если я осмотреть изображение, я получаю это:
JPEG 990x743 990x743 + 0 + 0 DirectClass 8-битный 78kb
Вот image. Результат совпадает с other cute animal pictures.
Я не говорю Ruby, но есть ли какое-то возвращаемое значение, которое вы можете проверить после вызова функции 'from_blob()'? –
Оказывается, это была проблема, потому что я тоже не говорю о Ruby. У меня была проблема с типами. –