首页 新闻 会员 周边 捐助

在ASP.NET中怎么将二进制转换为图片?

0
悬赏园豆:10 [已解决问题] 解决于 2008-11-09 11:41

各位好!

我想写一个公共的方法来实现二进制转化为图片,其中参数为byte数组,请问怎么实现?非常感谢。

亮 剑的主页 亮 剑 | 初学一级 | 园豆:40
提问于:2008-11-03 18:15
< >
分享
最佳答案
0

//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;
  }
  }

}

上不了岸的鱼 | 老鸟四级 |园豆:4613 | 2008-11-04 02:04
其他回答(2)
0

直接写个ashx然后Response.BinaryWrite(bytes)不就行了么

Gray Zhang | 园豆:17610 (专家六级) | 2008-11-03 20:49
0

通过动态页面中转

   <img src="myImageReader.aspx?imageId=1"/>

其中 myImageReader.aspx 的后台代码大致为:

  Response.clear();

  Response.ContentType="jpeg/img";//?

  byte[] bytes = SelectFromDatabaseById(imageId);//?

  Response.BinaryWrite(bytes)

  Response.End();

我从前是在图片放到数据库中,或许不适合你的场景。

陛下 | 园豆:3938 (老鸟四级) | 2008-11-03 21:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册