C#将图片转换二进制保存至Xml
2012-02-22 20:07
411 查看
今天看了篇将图片转为二进制保存至xml的文章,感觉这种方法还是有些用处的,虽然转为xml后文件反而比原图片大了。但是xml毕竟方便传输,并且出错的机会也小一些。贴代码看看。
说明:
TPFileName.XmlName——xml的路径和名称。
TPFileName.PictureName——原图片的路径和名称。
TPFileName.XmlPictureName——xml转换的图片的路径和地址。
Xml转换图片后
详细工程:http://download.csdn.net/detail/yysyangyangyangshan/4082253
本文出自 “西北白杨树” 博客,请务必保留此出处http://yangyoushan.blog.51cto.com/7229571/1276545
说明:
TPFileName.XmlName——xml的路径和名称。
TPFileName.PictureName——原图片的路径和名称。
TPFileName.XmlPictureName——xml转换的图片的路径和地址。
public class TPMainFormManager { static bool CreateXmlDocument() { try { if (File.Exists(TPFileName.XmlName)) { File.Delete(TPFileName.XmlName); } XmlTextWriter xmlTextWriter = new XmlTextWriter(TPFileName.XmlName, Encoding.UTF8); xmlTextWriter.Formatting = Formatting.Indented; xmlTextWriter.WriteStartDocument(); xmlTextWriter.WriteStartElement("PictureItems"); xmlTextWriter.WriteEndElement(); xmlTextWriter.WriteEndDocument(); xmlTextWriter.Close(); return true; } catch (Exception ex) { Debug.Assert(false, ex.Message); return false; } } public static void ChangePicToXml() { if (CreateXmlDocument()) { XmlDocument myXmlDoc = new XmlDocument(); myXmlDoc.Load(TPFileName.XmlName); XmlElement xmlElement = myXmlDoc.CreateElement("image"); FileStream fileStream = new FileStream(TPFileName.PictureName, FileMode.Open); BinaryReader binaryReader = new BinaryReader(fileStream); byte[] imageBuffer = new byte[binaryReader.BaseStream.Length]; binaryReader.Read(imageBuffer, 0, Convert.ToInt32(binaryReader.BaseStream.Length)); string textString = System.Convert.ToBase64String(imageBuffer); fileStream.Close(); binaryReader.Close(); XmlText text = myXmlDoc.CreateTextNode(textString); myXmlDoc.DocumentElement.AppendChild(xmlElement); myXmlDoc.DocumentElement.LastChild.AppendChild(text); myXmlDoc.Save(TPFileName.XmlName); } } public static Image GetXmlPicture() { int readByte = 0; int bytesToRead = 1024; XmlTextReader xmlTextReader = new XmlTextReader(TPFileName.XmlName); FileStream fileStream = new FileStream(TPFileName.PictureName, FileMode.Create); BinaryWriter binaryWriter = new BinaryWriter(fileStream); byte[] base64buffer = new byte[bytesToRead]; while (xmlTextReader.Read()) { if (xmlTextReader.NodeType == XmlNodeType.Element && xmlTextReader.Name == "image") { do { readByte = xmlTextReader.ReadBase64(base64buffer, 0, bytesToRead); binaryWriter.Write(base64buffer, 0, readByte); } while (bytesToRead <= readByte); } } binaryWriter.Flush(); binaryWriter.Close(); fileStream.Close(); xmlTextReader.Close(); Image image = Image.FromFile(TPFileName.PictureName); return image; } }原图:
Xml转换图片后
详细工程:http://download.csdn.net/detail/yysyangyangyangshan/4082253
本文出自 “西北白杨树” 博客,请务必保留此出处http://yangyoushan.blog.51cto.com/7229571/1276545
相关文章推荐
- C#将图片转换二进制保存至Xml
- C#将图片转换二进制保存至Xml
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- C# 图片和二进制之间的转换
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示
- 图片二进制互相转换C#(转)
- C# 图片二进制互相转换
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- ASP.NET(C#) 实现将图片以二进制保存到数据库中
- C# 图片与字节数组(byte[])二进制相互转换,获取大小像素扩展名
- C#将网页内容转换成图片保存到本地( webbrowser 可应用于B/S结构中)
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- C# 图片和二进制之间的转换
- 图片二进制互相转换C#
- C#将image中的显示的图片转换成二进制
- C#程序中将图片转换为二进制字符串,并将二进制字符串转换为图片
- C#将网页内容转换成图片保存到本地( webbrowser 可应用于B/S结构中)
- C# asp中,如何把二进制图片流转换成图片,并显示在网页上的一些注意事项
- 图片二进制互相转换C#
- c# winform下sql图片二进制存储/读取/显示/写入XML/读取XML显示