1

我想将 HTML 5 图像 src 字节作为二进制文件或硬盘存储到 DB 中。稍后我想阅读并将其分配给 img src="url"

这是 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">

我如何解析它并将其作为原始字节或图像存储到数据库/文件中?

注意:将 HTML 5 src 字节转换为 DB/Harddisk 图像的主要原因是生成将嵌入这些图像的 MS word 2007 格式文档。

4

2 回答 2

3

我该如何解析这个

您可以使用Convert.FromBase64String将数据解析为字节数组 。

至于如何在 SQL 中存储数据,对于这么小的图像,您还不如将其存储为 base-64 编码形式。对于较大的图像,您需要使用不同的方法,但那里有无数的答案,最好在 SQL 论坛中询问。

于 2013-07-06T04:35:06.660 回答
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);
     }
 }

这是您在表单上的图像(仅作为示例):
在此处输入图像描述

于 2013-07-06T04:44:16.127 回答