//生成一个临时文件
string strTmpFile = System.IO.Path.GetTempFileName();//从临时文件生成一个Stream
System.IO.Stream objStream=System.IO.File.Open(strTmpFile,System.IO.FileMode.Open);//把图片输出到Stream中,bytImage数组中存储了我的图片
objStream.Write(bytImage, 0, bytImage.Length);//从Stream中加载到Image对象
System.Drawing.Image img = System.Drawing.Image.FromStream(objStream);//输出类型:image/jpeg image/gif image/bmp 
Response.ContentType = Common.Photo.MimeTypeFromImageFormat(img.RawFormat);/*
输出到Response.OutputStream
如果图片文件是bmp格式了就会出错:GDI+产生一般性错误
但其它文件格式如:gif/jpg都没有问题
*/
img.Save(Response.OutputStream, img.RawFormat);objStream.Close();
Response.Flush();
img.Dispose();
求助各位

解决方案 »

  1.   

    根据不同的格式指定不同的imgFormt
      

  2.   

    你确定 你的.bmp文件 确实是图片文件 而且是.bmp格式
    而不是 别的文件 改了 后缀名?
      

  3.   

    从代码中可以看出来嘛,我判断格式并不是根据扩展名判断的,而是把图片数据加载到Image对象后,通过取Image对象的RawFormat属性获得的,并且文件也并不是改名得到的bmp文件Response.Content-Type也是根据RowFormat取到的如下值中的一个:
    "image/jpeg"或"image/gif"或"image/bmp"或……
      

  4.   

    问题找到了,Image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Bmp
    不支持基于bmp格式的图,改成
    Image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg)就可以了
    虽然图片是Bmp格式的
      

  5.   

    en,还是有问题tag、pcx格式的文件上面的方法还是不能解决
      

  6.   

    据说GDI+不支持tag和pcx格式,要先行转换
    消息可靠否?