Как мне быстро сделать что-то в Rmagick, чтобы проверить, что это работает?

StackOverflow https://stackoverflow.com/questions/70779

  •  09-06-2019
  •  | 
  •  

Вопрос

Мне нужно иметь возможность быстро конвертировать образ (внутри контроллера рельсов), чтобы хостинговая компания, использующая управление нашим приложением, могла в любое время быстро протестировать его, чтобы убедиться, что rmagick не только успешно установлен, но и может быть вызван через рельсы. какой самый быстрый чистый код я могу использовать для этого?

Это было полезно?

Решение 2

Я хотел сделать это так, чтобы я мог легко использовать его с помощью веб-браузера, поскольку я развертываю на управляемых серверах, к которым у меня нет доступа к оболочке (для повышения безопасности).

Вот что я сделал

class DiagnosticsController < ApplicationController
  require 'RMagick'

  def rmagick
    images_path = "public/images"
    file_name = "rmagick_generated_thumb.jpg"
    file_path = images_path + "/"+ file_name

    File.delete file_path if File.exists? file_path
    img = Magick::Image.read("lib/sample_images/magic.jpg").first
    thumb = img.scale(0.25)
    @path = file_name
    thumb.write file_path
  end
end #------

а затем в rmagick.html.erb

<%= image_tag @path %>

Теперь я могу нажать на контроллер, и если я увижу изображение, я знаю, что rmagic установлен.

Другие советы

require 'RMagick'

image = Magick::Image.new(110, 30){ self.background_color = 'white' }
image.write('/tmp/test.jpg')

Я бы зашел на сервер и опробовал ваш код в скрипте/консоли.Это по-прежнему будет проходить через стек рельсов, но позволит вам быстро проверить, что ваш код работает так, как вы ожидаете, и что RMagick и ImageMagick правильно установлены, без необходимости ничего развертывать.

Когда придет время писать реальный код, я бы предложил поместить код преобразования изображений внутри модели, чтобы вы могли вызывать его вне контекста контроллера.

Используйте скрипт/консоль и вызовите код в модели или контроллере, который делает что-то вроде следующего:

require 'RMagick'
include Magick
img = ImageList.new('myfile.jpg')
img.crop(0,0,10,10) # or whatever
img.write('mycroppedfile.jpg')
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top