2015-03-22 1 views
0

Я пишу обрезку изображения, где передаю размеры области посева почтовому запросу, загружаю изображение из 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.

+0

Я не говорю Ruby, но есть ли какое-то возвращаемое значение, которое вы можете проверить после вызова функции 'from_blob()'? –

+0

Оказывается, это была проблема, потому что я тоже не говорю о Ruby. У меня была проблема с типами. –

ответ

0

Я выяснил, в чем проблема: ничего не было с RMagick, и я ничего не ожидал. Я новичок в Ruby, поэтому, думаю, я узнал важный урок о безопасности типов. Я не получал консоль от работы с Кубой, поэтому я смотрел на значения, представляя их как ответ на окно. Значения в теле ответа - это все строки, которые, очевидно, работают непредсказуемо в математике. Вещи, чтобы забрать домой отсюда: a) На данный момент нет предполагаемых типов - убедитесь, что вы уверены. b) Мне нужно, чтобы моя консоль работала - на самом деле нет замены.

Смежные вопросы