ExternalException (0x80004005) A generic error occurred in GDI+

有时候我们希望保存一个图像质量是高质量的。可是却出现了

ExternalException (0x80004005) A generic error occurred in GDI+
下面是代码

使用AForge.net进行图片颜色替换
string filePath = Server.MapPath("~/...");//你的图片地址
Bitmap bmp = new Bitmap(filePath);
string htmlColor= "#"+Request.QueryString["color"];
Color newColor = System.Drawing.ColorTranslator.FromHtml(htmlColor);
IntRange red= new IntRange(217,217);
IntRange green = new IntRange(20,20);
IntRange blue = new IntRange(31,31);
ColorFiltering colorFilter = new ColorFiltering(red, green, blue);
colorFilter.FillOutsideRange = false;
colorFilter.FillColor = new AForge.Imaging.RGB(newColor);
Bitmap bitmap = colorFilter.Apply(AForge.Imaging.Image.Clone(bmp,PixelFormat.Format32bppRgb));
/*图片高质量保存*/
Encoder enc = Encoder.Quality;
EncoderParameters eps = new EncoderParameters(1);
EncoderParameter ep = new EncoderParameter(enc, 80L);
eps.Param[0] = ep;
ImageCodecInfo codecInfo = ImageCodecInfo.GetImageEncoders()[0];
MemoryStream stream = new MemoryStream();
/*如果直接保存的Reponse.OutputStream时候我们发现有一个错误ExternalException (0x80004005) A generic error occurred in GDI+
但是我发现直接保存成文件的时候却没有这个问题,后面就将这个放到MemoryStream再放到outputStream就正常了
*/
//bmp.Save(Response.OutputStream, codecInfo, eps);
//bmp.Save(Response.OutputStream, ImageFormat.Bmp);
bitmap.Save(stream,codecInfo,eps); stream.WriteTo(Response.OutputStream);
Response.ContentType = "image/jpeg";
Response.End(); 



 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值