将图片读入到Dom中,并将其存为xml文件

来源:互联网 时间:2008-09-04 11:24:00 

将图片读入到Dom中,并将其存为xml文件

1、需要命名空间


using System.Text;
using System.IO;
using System.Xml;

2、文件夹中存在001.jpg图片

3、生成一个docSave.xml文件


           

//*********************************
   {
    XmlDocument myXmlDoc = new XmlDocument();
    myXmlDoc.LoadXml("<picture><name>picture</name></picture>");

    XmlElement elem = myXmlDoc.CreateElement("image");

    // 打开图片文件,利用该图片构造一个文件流
    FileStream fs = new FileStream("../../001.jpg",FileMode.Open);
    // 使用文件流构造一个二进制读取器将基元数据读作二进制值
    BinaryReader br = new BinaryReader(fs);

    byte[] imageBuffer = new byte[br.BaseStream.Length];

    br.Read(imageBuffer,0,Convert.ToInt32(br.BaseStream.Length));

    string textString = System.Convert.ToBase64String(imageBuffer);

    fs.Close();
    br.Close();

    XmlText text = myXmlDoc.CreateTextNode(textString);

    myXmlDoc.DocumentElement.AppendChild(elem);
    myXmlDoc.DocumentElement.LastChild.AppendChild(text);

    myXmlDoc.Save("../../docSave.xml");

    MessageBox.Show("读写结束!");
catch(Exception ex)
   {
    MessageBox.Show(ex.ToString());
   }
//************************************************
//生成后的Xml文档
//******

<picture>
  <name>picture</name>
  <image>......</image>
</picture>

//*************************************************
//测试上一程序
//***********


说明:读取docSave.xml中的image节点,将其存为图片格式002.jpg.


           

  try
   {
    int readByte = 0;
    int bytesToRead = 1044;
    XmlTextReader xmlTxtRd = new XmlTextReader("../../docSave.xml");
    FileStream fs = new FileStream("../../002.jpg",FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);

    byte[] base64buffer = new byte[bytesToRead];
    while(xmlTxtRd.Read())
    {
     if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.Name == "image")
     {
      do
      {
       readByte = xmlTxtRd.ReadBase64(base64buffer,0,bytesToRead);
       bw.Write(base64buffer,0,readByte);
      }
      while( bytesToRead<= readByte);
     }
    }

    bw.Flush();
    bw.Close();
    fs.Close();

    xmlTxtRd.Close();
    MessageBox.Show("读写结束!");
   }
  catch(Exception ex)
   {
    MessageBox.Show(ex.ToString());
   }


标签:
0
投稿

猜你喜欢

  • JavaScript 页面编码与浏览器类型判断代码

    2024-04-08 10:54:03
  • Python学习笔记(二)基础语法

    2022-03-08 19:55:34
  • python实现从ftp服务器下载文件的方法

    2023-08-02 20:50:54
  • Vue.js设计与实现无限递归学习总结

    2024-04-28 10:53:53
  • 手把手教你将Flask应用封装成Docker服务的实现

    2023-05-27 06:57:15
  • 浅谈一下mysql数据库底层原理

    2024-01-27 21:19:39
  • 详解django中Template语言

    2022-12-01 21:20:59
  • SQLServer导出sql文件/表架构和数据操作步骤

    2024-01-26 19:21:26
  • python字典DICT类型合并详解

    2023-01-03 07:37:12
  • MS Server和Oracle中对NULL处理的一些细节差异

    2009-06-10 17:35:00
  • Pandas使用分隔符或正则表达式将字符串拆分为多列

    2022-03-05 13:52:54
  • 如何利用python实现windows的批处理及文件夹操作

    2023-02-17 16:53:45
  • Python读取环境变量的方法和自定义类分享

    2022-11-13 23:47:08
  • Python语言规范之Pylint的详细用法

    2022-11-26 03:12:25
  • JavaScript中利用for循环遍历数组

    2024-03-17 02:21:54
  • tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)

    2022-06-12 08:41:23
  • Python多版本开发环境管理工具介绍

    2024-01-02 07:13:43
  • Python一阶马尔科夫链生成随机DNA序列实现示例

    2021-06-23 07:42:22
  • Python从MySQL数据库中面抽取试题,生成试卷

    2024-01-18 01:40:51
  • js用星投票的示例代码

    2007-12-29 13:11:00
  • asp之家 网络编程 m.aspxhome.com