从Magick :: Image创建一个ruby File对象
|
我正在尝试使用rmagick和rest-client将加水印的图像发布到url。生成合成图像时,我将其保存(.write),并使用File.new读回,然后发布该File对象。不过,理想情况下,我想绕过写入操作,因为我再也不需要这张照片了。有什么方法可以将Magick :: Image对象转换为File对象,以便我可以将其发布到rest-client吗?
require \'rmagick\'
require \'rest-client\'
photo = Magick::Image.read(\'myphoto.jpg\').first
water_mark = Magick::Image.read(\'watermark.png\').first
result = photo.composite(water_mark, 0, 0, Magick::OverCompositeOp)
result.write(\'result.jpg\')
file = File.new(\'result.jpg\', \'rb\')
RestClient.post(\"http://example.com\", :source => file)
没有找到相关结果
已邀请:
1 个回复
墩瓣茅械
关键是在Magick :: Image上调用to_blob,然后从该字符串创建StringIO。当前版本的Koala gem在StringIO上存在故障,但我已将其修复在fork中并提交了pull请求: https://github.com/arsduo/koala/pull/122