Ruby:如何将字节数组转换为图像文件(.jpg,.png ...)

时间:2014-08-27 10:27:47

标签: ruby image bytearray converter

我收到字符串表示一个字节数组到Web服务:

  

" / 9J / 4AAQSkZJRgABAQEAYABgAAD / 2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL   ......"

我想知道如何将bytes数组转换为image bin文件。有没有宝石要做,或者我需要用文件库来操作它。

我在Ruby中阅读了一些示例但不是很好的解决方案。

我是否首先需要将字符串转换为字节数组并在文件之后?我必须使用的扩展是什么?

非常感谢。

2 个答案:

答案 0 :(得分:2)

回答问题的第1部分 您的输入看起来像base64。所以我假设您需要先从base64解码:

binary_data = Base64.decode64(data_from_web_service)
File.open('file_name', 'wb') {|f| f.write(binary_data)}

第二部分的答案(如何检测文件扩展名)是比较棘手的部分。 Web服务是否会返回有关此内容的任何信息?如果没有,您可以通过分析数据的幻数来成功。

答案 1 :(得分:-1)

你能不能把字符串写到文件中:

File.open('picture.jpg', 'w') { |file| file.puts(string) }