查看: 2376|回复: 0

[.NET源码] C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

发表于 2018-2-8 08:00:02

本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下:

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string path = this.textBox1.Text;
  4. byte[] imgBytesIn = SaveImage(path);
  5. ShowImgByByte(imgBytesIn);
  6. //Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
  7. }
  8. //将图片以二进制流
  9. public byte[] SaveImage(String path)
  10. {
  11. FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
  12. BinaryReader br = new BinaryReader(fs);
  13. byte[] imgBytesIn = br.ReadBytes((int)fs.Length); //将流读入到字节数组中
  14. return imgBytesIn;
  15. }
  16. //现实二进制流代表的图片
  17. public void ShowImgByByte(byte[] imgBytesIn)
  18. {
  19. MemoryStream ms = new MemoryStream(imgBytesIn);
  20. pictureBox1.Image = Image.FromStream(ms);
  21. }
复制代码

二、将图片保存到数据库中,并从数据库中读取:

  1. #region 将图片从数据库中读取
  2. /// <summary>
  3. /// 将图片从数据库中读取
  4. /// </summary>
  5. /// <param name="xs_ID">要读取图片的学号</param>
  6. /// <param name="ph">pictureBox1控件名</param>
  7. public void get_photo(string xs_ID, PictureBox ph)//将图片从数据库中读取
  8. {
  9. byte[] imagebytes = null;
  10. getcon();
  11. SqlCommand con = new SqlCommand("select * from S_jiben where S_num='" + xs_ID + "'", link);
  12. SqlDataReader dr = con.ExecuteReader();
  13. while (dr.Read())
  14. {
  15. imagebytes =(byte[])dr.GetValue(18);
  16. }
  17. dr.Close();
  18. con_close();
  19. MemoryStream ms = new MemoryStream(imagebytes);
  20. Bitmap bmpt = new Bitmap(ms);
  21. ph.Image = bmpt;
  22. }
  23. #endregion
  24. #region
  25. public void SaveImage(string MID, OpenFileDialog openF)//将图片以二进制存入数据库中
  26. {
  27. string strimg = openF.FileName.ToString(); //记录图片的所在路径
  28. FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
  29. BinaryReader br = new BinaryReader(fs);
  30. byte[] imgBytesIn = br.ReadBytes((int)fs.Length); //将流读入到字节数组中
  31. getcon();
  32. StringBuilder strSql = new StringBuilder();
  33. strSql.Append("update S_jiben Set xs_photo=@Photo where S_num=" + MID);
  34. SqlCommand cmd = new SqlCommand(strSql.ToString(), link);
  35. cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
  36. cmd.ExecuteNonQuery();
  37. con_close();
  38. }
  39. #endregion
复制代码

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

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

您可能感兴趣的文章:

  • asp.net(c#)实现从sqlserver存取二进制图片的代码
  • C# 将字节流转换为图片的实例方法
  • C# 图片与二进制转换的简单实例
  • C# 将透明图片的非透明区域转换成Region的实例代码
  • c# Base64编码和图片的互相转换代码
  • C#实现的图片、string相互转换类分享
  • C#将图片和字节流互相转换并显示到页面上
  • C#简易图片格式转换器实现方法
  • C#中图片、二进制与字符串的相互转换方法
  • 详谈C# 图片与byte[]之间以及byte[]与string之间的转换
  • C#中图片.BYTE[]和base64string的转换方法


回复

使用道具 举报