我正在尝试将文件转换为特定格式,因此我可以将其删除。我知道保存到磁盘并指定扩展名以将其转换为其他格式的技术,如下所示:
img.write("another_filename.jpg")
我希望在转换过程中不必触摸磁盘。
还有其他办法吗?
答案 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