RMagick - 将文件转换为另一种格式而不保存到磁盘

时间:2013-05-29 19:40:34

标签: ruby rmagick image-conversion

我正在尝试将文件转换为特定格式,因此我可以将其删除。我知道保存到磁盘并指定扩展名以将其转换为其他格式的技术,如下所示:

img.write("another_filename.jpg")

我希望在转换过程中不必触摸磁盘。

还有其他办法吗?

1 个答案:

答案 0 :(得分:7)

您可以在调用to_blob时指定格式。来自fine manual

  

to_blob img.to_blob [{optional arguments}] - >串

     

[...]
  没有必需的参数,但是您可以通过在与之关联的块中调用格式和深度属性以及适当的其他Image::Info属性来指定图像格式(例如JPEG,PNG等)和深度。方法

所以你可以这样说:

png_bytes = img.to_blob { |attrs| attrs.format = 'PNG' }

是的,to_blob的界面有点奇怪,但奇怪的界面只是使用ImageMagick的乐趣的一部分。

您还可以在致电to_blob之前使用format= method

img.format = 'PNG'
png_bytes  = img.to_blob