读取图片文件,网站假死

保存文件:

   System.Drawing.Bitmap bm = new System.Drawing.Bitmap(tWidth, tHeight);

   。。。。。。

   bm.Save(ms,ImageFormat.Jpeg);

 

读取文件:

    System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
    System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
    img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

故障现象:

 读取文件的时候出现假死现象,网站运行非常的慢,但是没有down机,但是文件在其他的工具中打开正常

 

解决办法:

  定义一个函数

  private ImageCodecInfo GetEncoderInfo(String mimeType)
  {
   int j;
   ImageCodecInfo[] encoders;
   encoders = ImageCodecInfo.GetImageEncoders();
   for (j = 0; j < encoders.Length; ++j)
    if (encoders[j].MimeType == mimeType) return encoders[j];
   return null;
  }  

  将保存文件的部分修改如下,也就是采用强类型存储

    ImageCodecInfo lIci;
    EncoderParameter lEp;
    EncoderParameters lEps;

    lIci = GetEncoderInfo("image/jpeg");

    lEp = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
    lEps = new EncoderParameters(1);
    lEps.Param[0] = lEp;

    bm.Save(ms, lIci, lEps);

    bm.Dispose();

疑问:

  找了好久,没有找出问题产生的原因,但是使用了此种方式以后,网站运行很稳定,难道是Image.Save的一个Bug?希望知道的朋友能给我留言,我使用的是VS2005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值