首页 > 编程 > C# > 正文

C#将图片和字节流互相转换并显示到页面上

2019-10-29 21:39:20
字体:
来源:转载
供稿:网友

本文主要介绍用C#实现图片转换成字节流,字节流转换成图片,并根据图片路径返回图片的字节流,有需要的朋友可以参考下

图片转换成字节流先要转换的IMage对象,转换之后返回字节流。字节流转换成图片,要转换的字节流,转换得到的Image对象,根据图片路径返回图片的字节流,感兴趣的朋友看下下面的代码。

C#将图片和字节流相互转换代码:

 

 
  1. usingSystem; 
  2. usingSystem.Collections.Generic; 
  3. usingSystem.Linq; 
  4. usingSystem.Text; 
  5. usingSystem.Drawing; 
  6. usingSystem.IO; 
  7. namespaceMicrosoft.Form.Base 
  8. classImageToByte 
  9. /// <summary> 
  10. /// 图片转换成字节流 
  11. /// </summary> 
  12. /// <param name="img">要转换的Image对象</param> 
  13. /// <returns>转换后返回的字节流</returns> 
  14. publicstaticbyte[] ImgToByt(Image img) 
  15. MemoryStream ms = newMemoryStream(); 
  16. byte[] imagedata = null
  17. img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
  18. imagedata = ms.GetBuffer(); 
  19. returnimagedata; 
  20. /// <summary> 
  21. /// 字节流转换成图片 
  22. /// </summary> 
  23. /// <param name="byt">要转换的字节流</param> 
  24. /// <returns>转换得到的Image对象</returns> 
  25. publicstaticImage BytToImg(byte[] byt) 
  26. MemoryStream ms = newMemoryStream(byt); 
  27. Image img = Image.FromStream(ms); 
  28. returnimg; 
  29. // 
  30. /// <summary> 
  31. /// 根据图片路径返回图片的字节流byte[] 
  32. /// </summary> 
  33. /// <param name="imagePath">图片路径</param> 
  34. /// <returns>返回的字节流</returns> 
  35. privatestaticbyte[] getImageByte(stringimagePath) 
  36. FileStream files = newFileStream(imagePath, FileMode.Open); 
  37. byte[] imgByte = newbyte[files.Length]; 
  38. files.Read(imgByte, 0, imgByte.Length); 
  39. files.Close(); 
  40. returnimgByte; 

将字节流转换为图片文件显示到页面上

 

 
  1. //Byte[] result; 
  2. System.IO.MemoryStream ms =new MemoryStream(result, 0, result.Length)  
  3. Response.ClearContent(); 
  4. Response.ContentType = "image/Gif"
  5. Response.BinaryWrite(ms.ToArray()); 
  6. 或者添加一个处理图片的Handler,内容如下: 
  7. <%@ WebHandler Language="C#" Class="Handler" %> 
  8. using System.Web; 
  9. using System.IO; 
  10.  
  11. public class Handler : IHttpHandler { 
  12. public void ProcessRequest (HttpContext context) { 
  13. int CategoryID = int.Parse(context.Request.QueryString["CategoryID"]); 
  14. //调用Categories.GetPicture取得图片stream 
  15. Stream stream = CategoriesPicture.GetPicture(CategoryID); 
  16. if (stream !=null) { 
  17. //取得图片stream大小 
  18. int buffersize = (int)stream.Length; 
  19. //建立buffer 
  20. System.Byte[] buffer = new System.Byte[buffersize ] ; 
  21. //调用stream.Read,从stream读取到buffer,并返回count 
  22. int count = stream.Read(buffer, 0, buffersize); 
  23. //返回图片字段buffer 
  24. if (count!=0) 
  25. context.Response.OutputStream.Write(buffer, 0, count); 
  26. public bool IsReusable { 
  27. get { 
  28. return false

以上就是本文的全部内容,希望对大家学习C#将图片和字节流互相转换并显示到页面上有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表