我想将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">
如何解析此问题并将其作为原始字节或图像存储到DB / File中?
注意:将HTML 5 src字节转换为DB / Harddisk映像的主要原因是,生成将嵌入这些图像的MS word 2007格式文档。
答案 0 :(得分:3)
如何解析此
您可以使用Convert.FromBase64String将数据解析为字节数组。
至于如何在SQL中存储数据,对于如此小的图像,您也可以将其存储在base-64编码形式中。对于较大的图像,您将需要使用不同的方法,但是那里有无数的答案,并且在SQL论坛中可能会更好。
答案 1 :(得分: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);
}
}
这是你在表格上的形象(仅举例):