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

Ruby:如何将字节数组转换为图像文件(.jpg、.png…),ruby,image,bytearray,converter,Ruby,Image,Bytearray,Converter,我收到了表示web服务字节数组的字符串: “/9j/4AAQSkZJRgABAQEAYABgAAD/2WBDAAGGBCGBQGHBWCQDBQNDALDBKSEW8UHROFH0AHBWGJC4NICIXWCKDCPLDAXNDQ0HYC5PTGYPC4ZNDL ……” 我想知道如何将字节数组转换为图像bin文件。是否有任何宝石可以做到这一点,或者我需要操纵它与文件库 我读了一些Ruby的例子,但不是很好的解决方案 我是否需要先将字符串转换为字节数组,然后再转换为文件?我必须使用的扩展名是什么

我收到了表示web服务字节数组的字符串:

“/9j/4AAQSkZJRgABAQEAYABgAAD/2WBDAAGGBCGBQGHBWCQDBQNDALDBKSEW8UHROFH0AHBWGJC4NICIXWCKDCPLDAXNDQ0HYC5PTGYPC4ZNDL ……”

我想知道如何将字节数组转换为图像bin文件。是否有任何宝石可以做到这一点,或者我需要操纵它与文件库

我读了一些Ruby的例子,但不是很好的解决方案

我是否需要先将字符串转换为字节数组,然后再转换为文件?我必须使用的扩展名是什么


非常感谢。

您能否将字符串写入文件:

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

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

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

第二部分(如何检测文件扩展名)的答案是比较棘手的部分。web服务不返回有关此的任何信息吗?如果没有,您可以通过分析数据的神奇数字来获得成功。

这看起来很基本。第一个问题是如何获得数据?非常感谢@koffeinfrei!那是我的工作!扩展名是.jpg!