2013-07-06 123 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