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

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

张嘉佑
2023-03-14
本文向大家介绍C#将图片和字节流互相转换并显示到页面上,包括了C#将图片和字节流互相转换并显示到页面上的使用技巧和注意事项,需要的朋友参考一下

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

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

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Drawing;
usingSystem.IO;
namespaceMicrosoft.Form.Base
{
classImageToByte
{
/// <summary>
/// 图片转换成字节流
/// </summary>
/// <param name="img">要转换的Image对象</param>
/// <returns>转换后返回的字节流</returns>
publicstaticbyte[] ImgToByt(Image img)
{
MemoryStream ms = newMemoryStream();
byte[] imagedata = null;
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
imagedata = ms.GetBuffer();
returnimagedata;
}
/// <summary>
/// 字节流转换成图片
/// </summary>
/// <param name="byt">要转换的字节流</param>
/// <returns>转换得到的Image对象</returns>
publicstaticImage BytToImg(byte[] byt)
{
MemoryStream ms = newMemoryStream(byt);
Image img = Image.FromStream(ms);
returnimg;
}
//
/// <summary>
/// 根据图片路径返回图片的字节流byte[]
/// </summary>
/// <param name="imagePath">图片路径</param>
/// <returns>返回的字节流</returns>
privatestaticbyte[] getImageByte(stringimagePath)
{
FileStream files = newFileStream(imagePath, FileMode.Open);
byte[] imgByte = newbyte[files.Length];
files.Read(imgByte, 0, imgByte.Length);
files.Close();
returnimgByte;
}
}
}

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

//Byte[] result;
System.IO.MemoryStream ms =new MemoryStream(result, 0, result.Length) 
 Response.ClearContent();
 Response.ContentType = "image/Gif";
 Response.BinaryWrite(ms.ToArray());
或者添加一个处理图片的Handler,内容如下:
<%@ WebHandler Language="C#" Class="Handler" %>
using System.Web;
using System.IO;

public class Handler : IHttpHandler {
 public void ProcessRequest (HttpContext context) {
 int CategoryID = int.Parse(context.Request.QueryString["CategoryID"]);
 //调用Categories.GetPicture取得图片stream
 Stream stream = CategoriesPicture.GetPicture(CategoryID);
 if (stream !=null) {
 //取得图片stream大小
 int buffersize = (int)stream.Length;
 //建立buffer
 System.Byte[] buffer = new System.Byte[buffersize ] ;
 //调用stream.Read,从stream读取到buffer,并返回count
 int count = stream.Read(buffer, 0, buffersize);
 //返回图片字段buffer
 if (count!=0)
 context.Response.OutputStream.Write(buffer, 0, count);
 }
 }
 public bool IsReusable {
 get {
 return false;
 }
 }
}

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

 类似资料:
  • 问题内容: 我正在编写一个程序,该程序从服务器获取有关字节数组中图像的数据。我正在将这些数据转换为24位BMP格式(无论是jpeg,png,bmp还是8-24-32bpp)。首先,将其保存到HD中,然后将其加载到JLabel的Icon中。完美运行,尽管在某些情况下会出现以下异常: 对于此行(第二行) 在这些情况下: 图像不会加载到JLabel中,但是可以在我的HD上找到 转换不正确,因为有些“滑移

  • 本文向大家介绍C#中图片、二进制与字符串的相互转换方法,包括了C#中图片、二进制与字符串的相互转换方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下: PS:这里小编再给大家推荐本站的一款图片转BASE64格式的在线转换工具,非常具有实用价值: 在线图片转换BASE64工具: http://tools.jb51.ne

  • 本文向大家介绍java 图片与base64相互转化的示例,包括了java 图片与base64相互转化的示例的使用技巧和注意事项,需要的朋友参考一下 需要导入: 以上就是java 图片与base64相互转化的示例的详细内容,更多关于java 图片与base64相互转化的资料请关注呐喊教程其它相关文章!

  • 本文向大家介绍基于VUE选择上传图片并页面显示(图片可删除),包括了基于VUE选择上传图片并页面显示(图片可删除)的使用技巧和注意事项,需要的朋友参考一下 基于VUE选择上传图片并在页面显示,图片可删除,具体内容如下 demo例子: 依赖文件:jqueryform HTML文本内容: JS文本内容: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 的在系统调用 包在Golang返回类型,而底层系统调用实际上返回一个指针。它是如何做到的? 更具体地说,在Golang开发人员的此程序包中,该函数仅返回一个指针。如何将其转换为字节片,就像在Unix软件包中一样? 问题答案: 使用该包,您可以在未导出类型的Mmap方法中执行相同的操作: 这是一个操场的例子。

  • 本文向大家介绍Java 图片与byte数组互相转换实例,包括了Java 图片与byte数组互相转换实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 文件解析: FileImageOutputStream 换成了 FileOutputStream FileImageInputStream 换成 FileInputStream 以上这篇Java 图片与byte数组互相转换实例就是小编分享给大家