我有一个功能,可以打开图像,调整图像大小,然后设置要包含在其调色板中的最大颜色数。然后将此修改后的图像用于内部处理。我的首选是避免将映像保存到磁盘,然后立即将其打开。
是否可以使用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
答案 0 :(得分:0)
这有效:)
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)
答案 1 :(得分:0)
查理·普雷扎诺(Charlie Prezzano)的回答似乎应该可以正常使用,但对我而言不起作用,因此我将在此处发布替代方法。这是对我有用的东西:
image_data =
MiniMagick::Tool::Convert.new do |convert|
convert << image_path
convert << '-resize' << resize
convert << '-colors' << colors
convert << 'png:-'
end
MiniMagick::Image.read(image_data)