[100分求助]向Response.OutputStream输出图片时,为什么只有bmp文件出错?

ylhyh 2007-04-06 04:21:18
//生成一个临时文件
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();


求助各位
...全文
446 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ylhyh 2007-04-16
  • 打赏
  • 举报
回复
据说GDI+不支持tag和pcx格式,要先行转换
消息可靠否?
ylhyh 2007-04-07
  • 打赏
  • 举报
回复
en,还是有问题

tag、pcx格式的文件上面的方法还是不能解决
ylhyh 2007-04-06
  • 打赏
  • 举报
回复
问题找到了,Image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Bmp
不支持基于bmp格式的图,改成
Image.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg)就可以了
虽然图片是Bmp格式的
chuxue1342 2007-04-06
  • 打赏
  • 举报
回复
帮顶!
ylhyh 2007-04-06
  • 打赏
  • 举报
回复
从代码中可以看出来嘛,我判断格式并不是根据扩展名判断的,而是把图片数据加载到Image对象后,通过取Image对象的RawFormat属性获得的,并且文件也并不是改名得到的bmp文件

Response.Content-Type也是根据RowFormat取到的如下值中的一个:
"image/jpeg"或"image/gif"或"image/bmp"或……

Red_angelX 2007-04-06
  • 打赏
  • 举报
回复
对对 楼上说的有道理
hertcloud 2007-04-06
  • 打赏
  • 举报
回复
你确定 你的.bmp文件 确实是图片文件 而且是.bmp格式
而不是 别的文件 改了 后缀名?
Red_angelX 2007-04-06
  • 打赏
  • 举报
回复
根据不同的格式指定不同的imgFormt

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧