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#程序设计有所帮助。

(0)

相关推荐

  • C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)

    本文实例讲述了C# DataTable中Compute方法用法.分享给大家供大家参考,具体如下: Compute函数的参数就两个:Expression,和Filter. Expresstion是计算表达式,关于Expression的详细内容请看这里: http://msdn2.microsoft.com/zh-cn/library/system.data.datacolumn.expression(VS.80).aspx 而Filter则是条件过滤器,类似sql的Where条件. DataTab

  • C#格式化json字符串的方法分析

    本文实例讲述了C#格式化json字符串的方法.分享给大家供大家参考,具体如下: 将Json字符串转化成格式化表示的方法: 字符串反序列化为对象-->对象再序列化为字符串 使用Newtonsoft.Json提供的API,下载地址:http://www.newtonsoft.com/json 很多时候我们需要将json字符串以 { "status": 1, "sum": 9 } 这种方式显示,而从服务端取回来的时候往往是这样 {"status"

  • C#正则表达式匹配与替换字符串功能示例

    本文实例讲述了C#正则表达式匹配与替换字符串功能.分享给大家供大家参考,具体如下: 事例一:\w+=>[A-Za-z1-9_],\s+=>任何空白字符,()=>捕获 string text = @"public string testMatchObj string s string match "; string pat = @"(\w+)\s+(string)"; // Compile the regular expression. Regex

  • C#后台接受前台JSON字符串装换成字典集合处理

    一直以来,我们都是在服务端查询出结果生成JSON字符串,供前端调用,那么我们能否把从前端接受的JSON字符串转换成字典集合,让后台处理呢? 比如从前端接收:{'size':'10', 'weight':'10kg'} 在服务端转换成:[{size:"10"},{weight:"10kg"}]这样的字典集合 通过Newtonsoft的DeserializeObject<Dictionary<string, string>>方法可以把JSON字符

  • C#操作字符串方法总结实例代码

    废话不多说了,具体代码如下所述: staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD"; Console.WriteLine(s[0]); // 输出"A"; Console.WriteLine(s.Length); // 输出4 Console.WriteLine(); //(2)打散为字符数组(ToCharArray) s ="ABC

  • C#基于正则表达式删除字符串中数字或非数字的方法

    本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace

  • C#实现char字符数组与字符串相互转换的方法

    本文实例讲述了C#实现char字符数组与字符串相互转换的方法.分享给大家供大家参考,具体如下: 一.字符串转换为字符数组 char[] tempChar = sourceString.ToCharArray(); 二.字符数组转换为字符串 //方法一 string str = string.Join("", tempChar); //方法二 string str = string.Concat<char>(tempChar); //方法三 string str = new

  • 在C#及.NET框架中使用StringBuilder类操作字符串的技巧

    但如果性能的优劣很重要,则应该总是使用 StringBuilder 类来串联字符串.下面的代码使用 StringBuilder 类的 Append 方法来串联字符串,因此不会有 + 运算符的链接作用产生. class StringBuilderTest { static void Main() { string text = null; // Use StringBuilder for concatenation in tight loops. System.Text.StringBuilder

  • C# string格式的日期时间字符串转为DateTime类型的方法

    方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss 方法二:Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo(); dtFormat.ShortDatePattern = "yyyy/MM/dd";

  • C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换

    定义string变量为str,内存流变量为ms,比特数组为bt 1.字符串转比特数组 复制代码 代码如下: (1)byte[] bt=System.Text.Encoding.Default.GetBytes("字符串"); (2)byte[] bt=Convert.FromBase64String("字符串"); 2.字符串转流 复制代码 代码如下: (1)MemoryStream ms=new MemoryStream(System.Text.Encoding.

随机推荐