2011-12-19 45 views
1

使用web服務MySQL數據庫檢索顯示斑點數據,我能夠從MySQL數據庫中檢索某些數據。數據庫中保存有一個圖像,其中包含BLOB的文件類型。這就是我的web服務的回報,當涉及到的圖像:從使用JavaScript

<image> 
/9j/4AAQSkZJRgABAQEAYABgAAD/7TaeUGhvd.....RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB//Z 
</image> 

現在我無法讓我的JavaScript應用程序轉換這個數據,然後它顯示爲圖像。我研究了一下,發現了一些在線教程,但不知何故,它們不適合我......任何人都可以幫助我解決這個問題嗎?我可以將BLOB數據轉換爲圖像的最簡單方法是什麼?提前致謝!

回答

1

假設團塊具有編碼的PNG數據的base64,可以使用data-uri設置數據直接向圖像例如這裏

var imgdata = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" 

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

假設是從服務器返回的數據進行base64編碼,但如果情況並非如此,你可以看到各種選項,但最終你可能必須做在服務器端適當的轉換,在這種情況下,爲什麼不只是該網址返回形象,創造一個API在服務器端從BLOB

這裏返回圖像是行動的jsfiddle http://jsfiddle.net/anuraguniyal/4DEtH/5/

編輯: 我不知道你用什麼語言進行服務器端,但過程將是相同的對於每種語言,例如

>>> s='\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x05\x00\x00\x00\x05\x08\x06\x00\x00\x00\x8do&\xe5\x00\x00\x00\x1cIDAT\x08\xd7c\xf8\xff\xff?\xc3\x7f\x06 \x05\xc3 \x12\x84\xd01\xf1\x82X\xcd\x04\x00\x0e\xf55\xcb\xd1\x8e\x0e\x1f\x00\x00\x00\x00IEND\xaeB`\x82' 
>>> import base64 
>>> base64.b64encode(s) 
'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' 

即採取一切數據,將被存儲在文件(而不是PNG標記也是如此),而不僅僅是原始圖像數據,並對其進行編碼

+0

現在,我已經編碼的BLOB爲Base64,恐怕這一段代碼仍然沒有工作... – BurninatorDor 2011-12-19 22:09:54

+0

@BurninatorDor我在的jsfiddle,它的作品所顯示的,所以可能是你沒有正確編碼數據 – 2011-12-19 22:54:27

+1

@BurninatorDor我給python中添加了一個例子,如何編碼 – 2011-12-19 22:57:09