2016-11-10 105 views
-1

我有一個包含圖片的URL JSON文件進行解碼,我想這是一個URL,它看起來像這樣:iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg==如何我的JSON字符串應該是一個圖像URL

所以在此基礎上,如何理解這個並獲得它代表的圖像?謝謝。

回答

2

這是一個編碼爲Base64的PNG文件。您可以使用data URI在HTML <img>標記來顯示它:

const imageBase64 = 'iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg=='; 
 
const imageUrl = 'data:image/png;base64,' + imageBase64; 
 
document.querySelector('img').src = imageUrl;
body { 
 
    background: black; 
 
}
<img>

的圖像是白色的,有透明的背景,所以我改變網頁背景爲黑色,以使圖像可見。


如果你只想解碼字符串,可以使用atob()功能:

const imageBase64 = 'iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg=='; 
 
document.body.textContent = atob(imageBase64);

0

這不是一個URL;它是PNG圖像的base64表示。 你可以這樣顯示出來,假如你有jQuery和文檔中與ID myimg圖像:

$("#myimg").attr("src","data:image/png;base64,"+yourData); 
+0

你是怎麼說的這是一個PNG? –

+0

我剛剛在線使用了許多base64解碼器之一;我看到該文件的標題是PNG – solendil

2

這是一個Base64編碼的圖像。您可以在HTML像這樣顯示出來:

body { 
 
    background-color: green 
 
}
<img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg==" />

0

這實際上是一個base64編碼的圖像。你有標準的功能來解碼它。看看一些例子here

1

這是一個Base64圖像源,如果您嘗試這樣做html頁面

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg==">

您將得到一個嵌入在html上的圖像

我已經嘗試了鉻,並獲得一個圖像54x51透明的符號。

此外,如果您嘗試使用Base64對此進行解碼並將其保存在與其相關的擴展名的文件中,您將獲得圖像文件。我已經完成了這樣的紅寶石,我可以得到這個文件。

File.open(`pwd`.chomp+"/image.png", "w+") do|f| f.write(Base64.decode64("iVBORw0KGgoAAAANSUhEUgAAADYAAAAzCAMAAADrVgtcAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAABYFPD3AAAAT3RSTlMADgst6+QksgbqvQq+H9wctOEJFPb6F0IMw05gGEBHXE1ZYUYql6Ag3/AZ9dZ9rQEDtXLepw+v2ggz8+iAPCM+g+zxLDXiMRGPiQIWKy4i7fbkmgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEuSURBVEjH7dPZUsJAEAXQBkxAQUBQQQfcFXHfd4PiDuj9/7/BQIpMQpZunrlvd2rOVFdXDVFoEkmaIKkZw5xEAXJnK7mzVTotdQOVyQidOWsrIpkzjaGSOVdJnK7+3RzPeRVRNsdxfsVz44rjglS8C1aOm5eqocsXpCrKRalwF63CnK2KESrY2SqXJZI5jhp3POV3XOV1fKW7wgJfua6UlyjHlai8KFIDt7RMVCmKFFF1ZdVZilI1Hqkp5X48BdR5rA6oKZsyGavw2BqwPiobwCaPbQHbo7ID7PLYHtBw2z6aZY46OMSRVo+Bk9N4dXYOXGg9eQlcVePU9Q1we6ef3D8Aj0/PViM0VuvlFWi/eV96N8DIx6d/gq/vdhxq/iQCRu90rd5vaHp/3Y57tw84CG6Xg3b41wAAAABJRU5ErkJggg==")) end 希望它有幫助。

相關問題