C# 图片处理 代码 GDI+一般性错误 参数无效

在C#中使用Graphic 编程,应该说是C#编程进入了一个较高的层次,并且这里面会有许多令人惊心动魄的内容。无论是所实现的绚丽效果或者是遇到的程序异常,所付出的都是杀死一堆脑细胞是的绝对代价。看到成果自然可喜可贺,如若遇到程序异常唯有稳住心神、尽可能的找出解决办法才是正道。

其一、 GDI+ 中发生一般性错误。

  这个或许遇到的可能性很大,我已经在到现在为止的编程经历中两次遇到这个类型的错误。第一次被折磨的不轻,主要是情绪极为激动。第二次,算是冷静地解决问题。

我所遇到的这个问题主要是因为将Bitmap关联的资源释放后再次使用Bitmap对象。在下图中的代码中,我先从文件流中创建了一个Bitmap对象,然后关闭了该文件流。在接下来调用Bitmap对象的Save方法时产生了这个错误。

  所以这个问题发生后,可以先考虑自己是不是关闭或者释放了和Bitmap相关的资源所导致的。

2011061517045267.jpg

2011061517105184.jpg

其二、参数无效。

  这个问题一般会让人联系到Graphics.DrawImage是不是除了问题,而且网上相关资源也是主要集中在DrawImage上。在我下面的代码中,是因为在调用Graphics.DrawImage之前手动释放了Bitmap的资源(通过调用Bitmap.Dispose方法)。

2011061517050628.jpg

2011061517052233.jpg

总结:在如上两类错误中,分别是过早或者不正确的调用了图像对象所关联资源的释放或关闭方法、图像本身的资源释放方法。但是,从第二个图中我们可以看出,过早释放关联资源和图像本身后在调试状态查看图像对象的内部结构时明显不一样。

转载于:https://www.cnblogs.com/klvk/archive/2011/06/15/2081664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值