2014-08-27 61 views
0

我收到串representating一個字節數組到Web服務:紅寶石:如何字節數組轉換爲圖像文件(爲.jpg,.png ...)

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

我想知道如何將字節數組轉換爲圖像bin文件。有沒有什麼寶石可以做,或者我需要使用文件庫來操作它。

我在Ruby中閱讀了一些示例但不是很好的解決方案。

我需要先將字符串轉換爲字節數組和文件後?我必須使用延期嗎?

非常感謝。

+3

看起來base64編碼 – 2014-08-27 11:01:07

+0

第一個問題是你如何得到這些數據? – Hauleth 2014-08-27 11:09:52

回答

2

回答你的問題的第1部分 您輸入的樣子的base64。所以我會假設你的base64需要首先解碼:

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

回答你的第二部分(如何檢測文件擴展名)是棘手的部分。 Web服務不會返回有關此信息嗎?如果沒有,您可以通過分析數據的幻數來成功。

+0

非常感謝你@koffeinfrei!這對我來說很有用!擴展名是.jpg! – Hiro 2014-08-27 12:49:15

-1

你能不能只寫字符串到文件:

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