C#中图片、二进制与字符串的相互转换方法

 更新时间:2016年06月09日 12:07:07   作者:smartsmile2012  
这篇文章主要介绍了C#中图片、二进制与字符串的相互转换方法,涉及C#针对不同数据类型的解析与转换操作技巧,需要的朋友可以参考下

本文实例讲述了C#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下:

protected void Button1_Click(object sender, EventArgs e)
{
  //图片转二进制
  byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png"));
  //二进制转换成字符串
  string picStr = Convert.ToBase64String(imageByte);
  //输出字符串
  Response.Write(picStr);
  //字符串转二进制
  byte[] imageBytes = Convert.FromBase64String(picStr);
  //读入MemoryStream对象
  MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
  memoryStream.Write(imageBytes, 0, imageBytes.Length);
  //二进制转成图片保存
  System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
  image.Save(Server.MapPath("./uploadfile/222.png"));
}
/// <summary>
/// 二进制流转图片
/// </summary>
/// <param name="streamByte">二进制流</param>
/// <returns>图片</returns>
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
  System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
  System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
  return img;
}
/// <summary>
/// 图片转二进制
/// </summary>
/// <param name="imagepath">图片地址</param>
/// <returns>二进制</returns>
public byte[] GetPictureData(string imagepath)
{
  //根据图片文件的路径使用文件流打开,并保存为byte[]
  FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
  byte[] byData = new byte[fs.Length];
  fs.Read(byData, 0, byData.Length);
  fs.Close();
  return byData;
}
/// <summary>
/// 图片转二进制
/// </summary>
/// <param name="imgPhoto">图片对象</param>
/// <returns>二进制</returns>
public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
{
  //将Image转换成流数据,并保存为byte[]
  MemoryStream mstream = new MemoryStream();
  imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
  byte[] byData = new Byte[mstream.Length];
  mstream.Position = 0;
  mstream.Read(byData, 0, byData.Length);
  mstream.Close();
  return byData;
}

PS:这里小编再给大家推荐本站的一款图片转BASE64格式的在线转换工具,非常具有实用价值:

在线图片转换BASE64工具:
http://tools.jb51.net/transcoding/img2base64

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结

希望本文所述对大家C#程序设计有所帮助。

相关文章

  • 详解C#中Helper类的使用

    详解C#中Helper类的使用

    项目中用户频繁访问数据库会导致程序的卡顿,甚至堵塞。使用缓存可以有效的降低用户访问数据库的频次,有效的减少并发的压力。而helper类对缓存有了封装,本文展示了封装的示例代码,需要的可以参考一下
    2022-04-04
  • WINFORM 窗体间的传值实现解析

    WINFORM 窗体间的传值实现解析

    这篇文章主要介绍了WINFORM 窗体间的传值实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • C#实现程序等待延迟执行的方法

    C#实现程序等待延迟执行的方法

    这篇文章主要介绍了C#实现程序等待延迟执行的方法,涉及C#动态链接库的使用及延迟的实现技巧,需要的朋友可以参考下
    2015-09-09
  • C# 进行图片压缩的示例代码(对jpg压缩效果最好)

    C# 进行图片压缩的示例代码(对jpg压缩效果最好)

    这篇文章主要介绍了C# 进行图片压缩的示例代码,帮助大家更好的利用c# 处理图片,提高办公效率,感兴趣的朋友可以了解下
    2020-11-11
  • C#对WPF数据绑定的菜单插入Seperator分隔

    C#对WPF数据绑定的菜单插入Seperator分隔

    这篇文章介绍了C#对WPF数据绑定的菜单插入Seperator分隔的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 使用C#开发Socket通讯的方法

    使用C#开发Socket通讯的方法

    使用C#开发Socket通讯的方法...
    2007-04-04
  • C#遍历DataSet控件实例总结

    C#遍历DataSet控件实例总结

    这篇文章主要介绍了C#遍历DataSet控件的用法,以实例形式总结归纳了常见的遍历方法,具有一定的参考学习价值,需要的朋友可以参考下
    2014-10-10
  • C#/VB.NET实现在 Word 中插入水印 

    C#/VB.NET实现在 Word 中插入水印 

    这篇文章主要介绍了C#/VB.NET实现在 Word 中插入水印,水印是指在 Word 文档的背景中以淡色或灰色显示的文本或图像。文章围绕主题展开介绍,需要的朋友可以参考一下
    2022-08-08
  • C#把EXCEL数据转换成DataTable

    C#把EXCEL数据转换成DataTable

    这篇文章介绍了C#把EXCEL数据转换成DataTable的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • c#遍历System.drawing.Color下面的所有颜色以及名称以查看

    c#遍历System.drawing.Color下面的所有颜色以及名称以查看

    c#遍历System.drawing.Color下面的所有颜色以及名称以查看,需要的朋友可以参考一下
    2013-02-02

最新评论