C#将图片转换二进制保存至Xml
来源:互联网 发布:我的世界手机版js天堂 编辑:程序博客网 时间:2024/04/28 21:27
今天看了篇将图片转为二进制保存至xml的文章,感觉这种方法还是有些用处的,虽然转为xml后文件反而比原图片大了。但是xml毕竟方便传输,并且出错的机会也小一些。贴代码看看。
说明:
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
- C#将图片转换二进制保存至Xml
- 将二进制流文件转换成图片保存
- c#将数据库二进制图片保存到硬盘上
- C#将图片以二进制形式保存数据库
- 将图片转换成二进制
- 图片二进制互相转换C#
- 图片二进制互相转换C#
- C# 图片二进制互相转换
- 图片保存为二进制值到XML
- 图片保存为二进制值到XML
- C# 将二进制字符串保存到本地
- C# 用二进制将图片保存在数据库里再读出来显示在pictureBox中
- c#保存二进制图片到本地
- js,二进制转换保存到数据库及读取二进制图片
- 将图片转换成二进制数据
- Asp.net将图片转换成二进制
- 将图片转换成二进制写入sqlite
- 将二进制 字符数组转换成 图片
- c语言清屏函数
- 今年第一个项目来说NET的中间语言
- Android面试问答题
- Android 开发环境安装手册下载
- EJB 定时服务实现
- C#将图片转换二进制保存至Xml
- 我不是天生的C++,也并非天生就喜欢电脑
- rsyslog 开启本地日志服务
- DOM案例----实现漂浮广告 超简单
- JS实现图片随机浮动效果
- 数据的一下应用和SQL数据库查询 左连接、右连接、内连接 实例
- 就掌握了成功的C++,那么信息从何而来
- 浅谈Android iPhone智能机触摸屏原理
- 封装