private void button1_Click(object sender, EventArgs e)
{
try{
int readByte = 0; //
int bytesToRead = 100;
string fileName = "../../yangm.xml";
// 打开图片文件,利用该图片构造一个文件流
FileStream fs = new FileStream("../../ym.jpg", FileMode.Open);
// 使用文件流构造一个二进制读取器将基元数据读作二进制值
BinaryReader br = new BinaryReader(fs);
XmlTextWriter xmlTxtWt = new XmlTextWriter(fileName, Encoding.UTF8);
//输出设置代码缩进
xmlTxtWt.Formatting = Formatting.Indented;
// xmlTxtWt.Indentation = 4;
xmlTxtWt.WriteStartDocument();
xmlTxtWt.WriteStartElement("picture", "ContactDetails", "http://www.deltabis.com/Contact");//定义命名空间
xmlTxtWt.WriteStartElement("image"); //定义节点
xmlTxtWt.WriteAttributeString("imageName", "002.jpg"); //添加图片属性
byte[] base64buffer = new byte[bytesToRead]; //开辟缓冲区
do
{
readByte = br.Read(base64buffer, 0, bytesToRead); //将数据读入字节数组
xmlTxtWt.WriteBase64(base64buffer, 0, readByte); //将数组中二进制值编码为Base64并写出到XML文件
} while (bytesToRead <= readByte);
xmlTxtWt.WriteEndElement();
xmlTxtWt.WriteEndElement();
xmlTxtWt.WriteEndDocument();
// xmlTxtWt.Flush();
xmlTxtWt.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
上边的代码是从网上找到的,下边的代码的功能为如何从xml文件中把保存好的图片提取出来
private void button2_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
//XmlNode d=new xmlnode
// 装入指定的XML文档
doc.Load("../../yangm.xml");
XmlNodeList NodeList = doc.GetElementsByTagName("image");//得到节点列表
XmlNode ImageNode = NodeList[0];//得到该节点
string PicByte = ImageNode.InnerXml;//得到节点内的二进制代码
byte[] b = Convert.FromBase64String(PicByte);//转化为byte[]
System.IO.MemoryStream sm = new MemoryStream();
sm.Write(b, 0, b.Length);//写到流中
this.photo.Image = Image.FromStream(sm);//picbox
base64简介