2013-07-06 66 views
1

我想將HTML 5圖像的src字節以二進制或HardDisk格式存儲到數據庫中。後來我想讀並將其分配給IMG SRC =「URL」將Html 5 img src數據轉換爲Raw字節或文件

這裏是HTML 5的代碼

<img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/ f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67 QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g7 7ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" width="16" height="14" alt="embedded folder icon">

如何解析這個並將其存儲爲原始字節或圖像轉換成DB /文件?

注意:將HTML 5 src字節轉換爲DB/Harddisk映像的主要原因是生成將嵌入這些映像的MS Word 2007格式文檔。

+0

肯定。我刪除了我的評論。 – akonsu

+0

和我一樣...我們應該全面徹底地刪除我們關於無限期刪除我們的評論的評論?? :) –

回答

3

如何解析這個

您可以將數據解析成使用Convert.FromBase64String字節數組。關於如何在SQL中存儲數據,對於這樣一個小圖像,您可能只需將其存儲在base-64編碼形式中即可。對於較大的圖像,您需要使用不同的方法,但這裏有大量的答案,並且可能更好地在SQL論壇中提出。

+0

謝謝!我知道了。仍然我需要刪除那些'圖像類型'前綴等我指這個http://stackoverflow.com/questions/4850866/unable-to-generate-png-image-from-html-5-canvas – Billa

+0

我決定將它存儲在文件系統而不是數據庫中:) – Billa

+0

是的 - 正確 - 你只需要在數據本身上執行FromBase64String,這是逗號之後的部分。我忽略了這一點,因爲它可能看起來很明顯(對我而言),所以我的不好。 –

3
private void button1_Click(object sender, EventArgs e) 
{ 
    // original source string 
    string src = @"data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/ f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67 QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g7 7ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7"; 

    // using regex replace to remove `data:image...` prefix 
    string pattern = @"data:image/(gif|png|jpeg|jpg);base64,"; 
    string imgString = Regex.Replace(src, pattern, string.Empty); 

    byte[] imageBytes = Convert.FromBase64CharArray(imgString.ToCharArray(), 0, imgString.Length); 
    using (MemoryStream ms = new MemoryStream(imageBytes)) 
    { 
      Image image = Image.FromStream(ms); 
      pictureBox1.Image = image;    
    } 

    // write to file 
    using(FileStream file = new FileStream("file.gif", FileMode.Create, FileAccess.Write)) 
    { 
      file.Write(imageBytes, 0, imageBytes.Length); 
    } 
} 

,這是你的表格(只是舉例)圖像:
enter image description here