Как создать изображение в памяти с помощью MiniMagick :: Tool :: Convert - PullRequest
0 голосов
/ 24 января 2019

У меня есть функция, которая открывает изображение, изменяет его размер, а затем устанавливает максимальное количество цветов, которые будут включены в его палитру.Это измененное изображение затем используется для внутренней обработки.Я предпочитаю избегать сохранения изображения на диск, который затем сразу открывается.

Есть ли способ использовать MiniMagick :: Tool :: Convert и захватить вывод в память?

def create_image_for_processing(image_path, resize, colors)
    MiniMagick::Tool::Convert.new do |convert|
        convert << image_path
        convert << '-resize' << resize
        convert << '-colors' << colors
        convert << 'temp.png'
    end
    MiniMagick::Image.open('temp.png')
end

1 Ответ

0 голосов
/ 24 января 2019

Это работает:)

image_data =
    MiniMagick::Tool::Convert.new do |convert|
      convert << image_path
      convert << '-resize' << resize
      convert << '-colors' << colors
      convert.stdout
    end
MiniMagick::Image.read(image_data)
...