图像保存到XML文件及由XML中取出图像展示

足保存成各种图像格式,包括jpeg,gif,bmp,png等等。本段代码是保留成jpeg。

一、保存到XML文件

// Write it to file
[UIImageJPEGRepresentation(image, 1.0f) writeToFile:
    pathString atomically:YES];
//该片段来自于http://outofmemory.cn

图片 1//得到用户只要高达污染之公文称
图片 2            string strFilePathName = loFile.PostedFile.FileName;
图片 3            string strFileName = Path.GetFileName(strFilePathName);
图片 4            int FileLength = loFile.PostedFile.ContentLength;
图片 5            if(FileLength<=0)
图片 6                return;
图片 7            try
图片 8图片 9            图片 10{
图片 11                Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
图片 12                Stream StreamObject = loFile.PostedFile.InputStream; //建立数据流对像
图片 13                //读博图象文件数量,FileByteArray为数储存体,0为数据指针位置、FileLnegth为多少长度
图片 14                StreamObject.Read(FileByteArray,0,FileLength); 
图片 15                string fileName = Server.MapPath(“.\\WriteXml.xml”);   //要打开的公文
图片 16            
图片 17                XmlDocument xmlDoc = new XmlDocument();
图片 18                xmlDoc.Load(fileName);
图片 19                XmlNode root=xmlDoc.SelectSingleNode(“dbImage”);//查找<dbGuest>
图片 20                XmlNodeList xnl=xmlDoc.SelectSingleNode(“dbImage”).ChildNodes;
图片 21                int nIndex = xnl.Count;
图片 22                //以下添加新结点
图片 23                XmlElement xe1=xmlDoc.CreateElement(“Image”);//创建一个<User>节点
图片 24                XmlElement xesub1=xmlDoc.CreateElement(“ImageID”);
图片 25                xesub1.InnerText=nIndex.ToString();//设置文本节点
图片 26                xe1.AppendChild(xesub1);//添加到<User>节点中
图片 27                XmlElement xesub2=xmlDoc.CreateElement(“ImageContentType”);
图片 28                xesub2.InnerText=loFile.PostedFile.ContentType;
图片 29                xe1.AppendChild(xesub2);
图片 30                XmlElement xesub3=xmlDoc.CreateElement(“ImageSize”);
图片 31                xesub3.InnerText=FileLength.ToString();
图片 32                xe1.AppendChild(xesub3);
图片 33                XmlElement xesub4=xmlDoc.CreateElement(“ImageDescription”);
图片 34                xesub4.InnerText=tbDescription.Text;
图片 35                xe1.AppendChild(xesub4);
图片 36                XmlElement xesub5=xmlDoc.CreateElement(“ImageData”);
图片 37                xesub5.InnerText= Convert.ToBase64String(FileByteArray);
图片 38                xe1.AppendChild(xesub5);
图片 39
图片 40
图片 41                root.AppendChild(xe1);//添加到<dbGuest>节点中
图片 42                xmlDoc.Save(fileName);
图片 43            
图片 44                Response.Redirect(“ShowAllImg.aspx”);
图片 45            }
图片 46            catch
图片 47图片 48            图片 49{
图片 50            }

亚、从XML文件中取出显示

图片 51int ImgID = Convert.ToInt32(Request.QueryString[“ID”]); //ID为图片ID 
图片 52            //建立数据库链接
图片 53            string fileName = Server.MapPath(“.\\WriteXml.xml”);   //要打开的公文
图片 54            
图片 55            XmlDocument xmlDoc = new XmlDocument();
图片 56            xmlDoc.Load(fileName);
图片 57            XmlNodeList node =  xmlDoc.SelectSingleNode(“//Image[ImageID='”+ImgID.ToString()+”‘]”).ChildNodes;
图片 58            if(node!=null)
图片 59图片 60            图片 61{
图片 62                string strType = node.Item(1).InnerText;
图片 63                string strData =node.Item(4).InnerText;
图片 64                int nSize = int.Parse(node.Item(2).InnerText);
图片 65
图片 66                Response.ContentType = strType;//设定输出文件类型
图片 67                //输出图象文件二前进制数制
图片 68                Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize); 
图片 69                Response.End();
图片 70                //也可以保存也图像
图片 71                //            FileStream fs = new FileStream(@”C:\aa.BMP”, FileMode.OpenOrCreate, FileAccess.Write);
图片 72                //            fs.Write((Convert.FromBase64String(strData), 0,nSize);
图片 73                //            fs.Close();
图片 74            }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图