当前位置:  编程技术>.net/c#/asp.net

c# Base64编码和图片的互相转换代码

    来源: 互联网  发布时间:2014-11-01

    本文导语:  事出有因          我们已经做了一个编辑器,这个编辑器可以以xml格式存储一些信息。在存储图片信息时我们碰到了一些问题。我们本来在xml信息中存储的是图片的路径,然而一旦客户把这个信息copy到其他电脑上而没有同...

事出有因

         我们已经做了一个编辑器,这个编辑器可以以xml格式存储一些信息。在存储图片信息时我们碰到了一些问题。我们本来在xml信息中存储的是图片的路径,然而一旦客户把这个信息copy到其他电脑上而没有同时copy相关的图片时,就会出现一些问题。
         后来,我们把图片数据转换为Base64编码,替代了原先存储图片路径的方式。

转换流程

将图片转化为Base64字符串的流程是:首先使用BinaryFormatter将图片文件序列化为二进制数据,然后使用Convert类的ToBase64String方法。将Base64字符串转换为图片的流程正好相反:使用Convert类的FromBase64String得到图片文件的二进制数据,然后使用BinaryFormatter反序列化方法。

/// 
    /// 将图片数据转换为Base64字符串
    /// 
    /// 
    /// 
    private void ToBase64(object sender, EventArgs e)
    {
      Image img = this.pictureBox.Image;
      BinaryFormatter binFormatter = new BinaryFormatter();
      MemoryStream memStream = new MemoryStream();
      binFormatter.Serialize(memStream, img);
      byte[] bytes = memStream.GetBuffer();
      string base64 = Convert.ToBase64String(bytes);
      this.richTextBox.Text = base64;
    }

    /// 
    /// 将Base64字符串转换为图片
    /// 
    /// 
    /// 
    private void ToImage(object sender, EventArgs e)
    {
      string base64 = this.richTextBox.Text;
      byte[] bytes = Convert.FromBase64String(base64);
      MemoryStream memStream = new MemoryStream(bytes);
      BinaryFormatter binFormatter = new BinaryFormatter();
      Image img = (Image)binFormatter.Deserialize(memStream);
      this.pictureBox.Image = img;
    }

运行结果


    
 
 

您可能感兴趣的文章:

  • C# Base64编码函数
  • c# Base64编码函数学习笔记
  • c# Base关键字的使用
  • c#访问this关键字和base关键字示例
  • c#中this关键字与base关键字使用方法
  • Base64编码解码原理及C#编程实例
  • C# 参考之访问关键字:base、this
  • Base64编码原理详解及c++编码解码实现
  • 请问有没有办法判断一串字符串是否经过base64编码
  • 简洁实用的Java Base64编码加密异常处理类代码
  • 弱弱的问一下如何用openssl进行base64编码和解码的代码实现
  • BASE64编码解码库 libb64
  • 使用sendmail发信时,subject出现乱码的问题。(使用了标准的base64编码,outlook的时候看是正常编码,别的服务器还是有乱码例如mozilla收 iis7站长之家
  • PHP安全的URL字符串base64编码和解码
  • 各种格式的编码解码工具类分享(hex解码 base64编码)
  • 在java里有关编码和解码的问题:比如对中文编码成BASE64或quoted-printable或者是其他的,应该用什么类什么方法?请赐教!!
  • 使用sendmail发信时,subject出现乱码的问题。(使用了标准的base64编码,outlook的时候看是正常编码,别的服务器还是有乱码例如mozilla收
  • 如何JavaMail不将附件Base64编码!
  • base64编码转换问题(在线。。。。。。。。。急)
  • 各位Java大侠救命!Base64编码如何做?
  • PHP base64编码后解码乱码的解决办法
  • 关于BASE64 编码解密的问题,高分求解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.xml.crypto.dsig接口transform的类成员方法: base64定义及介绍
  • 为什么[-n "$LS_BASE_NAME" -a -z "${LS_BASE_NAME}.${group_name}.x" ]提示不合法?
  • java命名空间javax.swing.text.html.parser类dtd的类成员方法: base定义及介绍
  • 搭建snort安装BASE后出现问题?????????
  • java命名空间java.awt.font接口opentype的类成员方法: tag_base定义及介绍
  • Java Base64
  • java命名空间javax.swing.text.html类html.tag的类成员方法: base定义及介绍
  • 关于TEXT_BASE的定义
  • java命名空间java.io接口objectstreamconstants的类成员方法: tc_base定义及介绍
  • C语言的BASE64处理 b64
  • HTML 5 <base> 标签-规定页面中所有链接的基准 url
  • 二进制转BASE64问题,急
  • HTML <base> 标签
  • 请教:我把word.doc文档以bin.base64类型方式形成一个xml,上传到服务器后,如何在servlet中,读取这个流。。。
  • 全注解的SSH框架 ssh-base-framework
  • base href 使用方法详解
  • php base64加密解密的实现代码
  • 菜鸟问题:在linux下,c语言编写程序,要连接openoffice.org base作为数据库!
  • 请问:在web-inf目录下有calsses/com/dichain/application/base/BasicConstants.class但还是出错,为什么??
  • 驱动里IP_IRQ_COUNT 和IP_VA_BASE以及IP_IRQIP_COUNT 这几个参数到底是指什么呢?
  • python中的hashlib和base64加密模块使用实例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3