下边的例子是利用xml来保存图片.参考网址

http://www.knowsky.com/301567.html

 

 

 

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