【问题标题】:Ruby : How to convert bytes array to image file (.jpg, .png ...)Ruby:如何将字节数组转换为图像文件(.jpg、.png ...)
【发布时间】:2014-10-20 21:29:37
【问题描述】:

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

"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL ……”

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

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

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

非常感谢。

【问题讨论】:

  • 看起来是 base64 编码的
  • 第一个问题是如何获取这些数据?

标签: ruby image bytearray converter


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢@koffeinfrei!那是为我工作!扩展名是 .jpg !
【解决方案2】:

你能不能把字符串写入文件:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2012-06-01
    • 2013-01-08
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多