作者stelliver (啧啧星人)
看板C_Sharp
标题[问题]撷取影像 出现其他地方正在使用
时间Wed Sep 21 13:05:16 2011
最近用CCD来撷取影像来做影像处理的工作,其中一段是将影像的
大小做一个裁切。但是在执行数次後就会出现"其他地方正在使用物件"的
错误讯息。以下是我的程式码:
private Bitmap ImageSizeTransfer(Bitmap bmp, int partwidth, int partheight)
{
Bitmap newbmp=new Bitmap(partwidth,partheight,PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(newbmp);
g.DrawImage(bmp, 0, 0,
new Rectangle(0,0,partwidth,partheight),
GraphicsUnit.Pixel);
g.Dispose();
return new Bitmap(newbmp)
}
错误会出现在g.DrawImage这一句。
想请教如何解决这个问题,谢谢大家。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.135.97.11
※ 编辑: stelliver 来自: 140.135.97.11 (09/21 13:08)
1F:→ ONLYSMART:return newbmp 不就好了? 09/21 14:08
2F:→ stelliver:我试过 return newbmp 跟 return new bitmap一样会出错 09/21 14:36
3F:→ ONLYSMART:剪出来的Bitmap, 用完後有没有dispose(); 09/21 15:03
4F:→ stelliver:我尝试设一个bmp1去承接bmp後再做dispose一样会出现错误 09/21 15:55
5F:→ stelliver:但是这次错误是错误是出现在bmp1那边 09/21 15:55
6F:→ ONLYSMART:释放後还要设成null 有吗?你这方法除了少例外处理, 其他 09/21 16:25
7F:→ ONLYSMART:跟我用的差不多,所以我看不出那里有错, 等高手回答吧! 09/21 16:25
8F:推 Laluth:用using包起来试看看 09/21 17:15
9F:→ stelliver:有设成NULL,还是无法解决。using不会用去爬文 晚点回报 09/21 18:44
10F:→ stelliver:我尝试过了 虽然不确定有没有用对但是没有效果 09/21 19:55
11F:→ stelliver:我找到问题了,但是为什麽会这样子不明 09/21 20:52
12F:→ stelliver:错误在在显示图片的时候会跟裁切的程式码冲突 09/21 20:52
13F:→ stelliver:实际冲突的点不清楚。解决方式是在显示的时候 09/21 20:53
14F:→ stelliver:用一个picturebox.image=new Bitmap(image); 09/21 20:55
15F:→ proach:请查一下 Bitmap.LockBits Bitmap.UnlockBits 09/22 21:29