Rmagick изменения размера и flatten_image ошибка - PullRequest
0 голосов
/ 24 сентября 2011

Я пытаюсь использовать Rmagick для объединения двух изображений.

  1. Размер изображения сверху можно изменить и перетащить с помощью Jquery-UI.Я получаю размер изображения после изменения размера с помощью кода Jquery, например:

      ui.size["height"] and ui.size["width"]
    
  2. Я отправляю эти данные с помощью Ajax на сервер Rails.

  3. Следующим шагом я изменяю размер изображения с помощью Rmagick resize_to_fit, а затем использую flatten_image, чтобы объединить два изображения следующим образом:

    images=ImageList.new(img1, img2)
    images[1]=images[1].resize_to_fit!(height, width)
    images[1].page=Rectangle.new(height, width, x_coord+offset, y_coord-offset1)
    com_img=images.flatten_images
    com_img.write(tmpfile.path)
    

MyПроблема заключается в том, что изменение размера изображения, кажется, не работает правильно.Я всегда получаю изображение меньше, чем я хочу (для разных высот и ширины, проверенных путем изменения размера изображения).Левый верхний угол изображения расположен правильно (это означает, что команда страницы работает правильно).Я проверил свой код JQuery UI, ajax и отправил правильную информацию о размере.Каким-то образом информация неправильно обрабатывается Rmagick resize или flatten_image.

Может ли кто-нибудь предоставить указатели, что здесь может быть не так?

Спасибо!

PS: смещение учитывает положение первого изображения относительно верхнего левого угла страницы.

1 Ответ

0 голосов
/ 03 октября 2011

Я нашел решение проблемы. Rmagick требует, чтобы изображения при изменении их размера помещались в квадрат. Таким образом, функция resize_to_fit работает правильно, когда оба измерения одинаковы и больше по высоте или ширине.

Итак, я изменил код, чтобы сделать следующее

        if height > width
        images[1]=images[1].resize_to_fit!(height, height)
        else
        images[1]=images[1].resize_to_fit!(width, width)
        end 
...