在1.x的时候就遇到过位图没有释放造成图片文件无法使用的问题.今天使用2.0写代码的时候又发生了.
主要情况如下:
使用Bitmap b = new Bitmap("filename");创建位图.一般情况下,在b.Dispose();后可以解锁文件.
后改用using语句使其自动释放.
但在释放位图前,如果使用了Bitmap bnew = b.Clone() as Bitmap;将造成图片文件依然锁定,直到此克隆对象也调用释放语句.
现解决方法为使用创建相同大小位图,然后使用DrawImage方法绘制位图b.缺点是将会增加加载时间.优点是可以即时释放文件资源.
注:如果使用LockBits 方案直接对内存操作,进行复制,效率将大大提高.
![](http://c.spaces.msn.com/CollectionWebService/c.gif?space=sharkoo&page=RSS%3a+%e5%85%b3%e4%ba%8e%e4%bb%8e%e6%96%87%e4%bb%b6%e5%8a%a0%e8%bd%bd%e4%bd%8d%e5%9b%be&referrer=)
![](/admin/c.msn.com/c.gif?NC=31263&NA=1149&PI=88469&RF=&DI=3919&PS=85545&TP=spaces.msn.com>1=sharkoo%3b2052)
文章来源:http://spaces.msn.com/sharkoo/Blog/cns!D8E832CE4545AF!192.entry