当前位置: 首页 > 编程笔记 >

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

司空元凯
2023-03-14
本文向大家介绍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#程序html" target="_blank">设计之线程使用技巧总结》

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

 类似资料:
  • 本文向大家介绍Java中Color和16进制字符串互相转换的方法,包括了Java中Color和16进制字符串互相转换的方法的使用技巧和注意事项,需要的朋友参考一下 1.原理 主要是调用了toHexString(将int类型转为16进制字符串)、parseInt(将字符串解析为int)这两个方法。 2.代码 3.效果 4.关键点 4.1 toHexString:没啥好说的,JDK提供的将整数转为16

  • 本文向大家介绍C#实现实体类与字符串互相转换的方法,包括了C#实现实体类与字符串互相转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现实体类与字符串互相转换的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍js数组与字符串的相互转换方法,包括了js数组与字符串的相互转换方法的使用技巧和注意事项,需要的朋友参考一下 熟悉js的朋友很多都遇到过js的数组与字符串相互转换的情况,本文就此作一简单介绍,示例如下: 一、数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: 二、字符串转数组 实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:

  • 本文向大家介绍Python 十六进制整数与ASCii编码字符串相互转换方法,包括了Python 十六进制整数与ASCii编码字符串相互转换方法的使用技巧和注意事项,需要的朋友参考一下 在使用Pyserial与STM32进行通讯时,遇到了需要将十六进制整数以Ascii码编码的字符串进行发送并且将接收到的Ascii码编码的字符串转换成十六进制整型的问题。查阅网上的资料后,均没有符合要求的,遂结合各家之

  • 我如何将一个写为二进制的字符串转换为二进制(字节数组)? 如果我有一个字符串: 下面是当我将二进制设置为字节数组时发生的情况(字节数组返回48,这是ASCII) 我不擅长解释,所以希望上面的例子足以告诉你我想要什么。

  • 问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示: