[問題]擷取影像 出現其他地方正在使用

看板C_Sharp (C#)作者 (嘖嘖星人)時間14年前 (2011/09/21 13:05), 編輯推噓1(1014)
留言15則, 4人參與, 最新討論串1/1
最近用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)

09/21 14:08, , 1F
return newbmp 不就好了?
09/21 14:08, 1F

09/21 14:36, , 2F
我試過 return newbmp 跟 return new bitmap一樣會出錯
09/21 14:36, 2F

09/21 15:03, , 3F
剪出來的Bitmap, 用完後有沒有dispose();
09/21 15:03, 3F

09/21 15:55, , 4F
我嘗試設一個bmp1去承接bmp後再做dispose一樣會出現錯誤
09/21 15:55, 4F

09/21 15:55, , 5F
但是這次錯誤是錯誤是出現在bmp1那邊
09/21 15:55, 5F

09/21 16:25, , 6F
釋放後還要設成null 有嗎?你這方法除了少例外處理, 其他
09/21 16:25, 6F

09/21 16:25, , 7F
跟我用的差不多,所以我看不出那裏有錯, 等高手回答吧!
09/21 16:25, 7F

09/21 17:15, , 8F
用using包起來試看看
09/21 17:15, 8F

09/21 18:44, , 9F
有設成NULL,還是無法解決。using不會用去爬文 晚點回報
09/21 18:44, 9F

09/21 19:55, , 10F
我嘗試過了 雖然不確定有沒有用對但是沒有效果
09/21 19:55, 10F

09/21 20:52, , 11F
我找到問題了,但是為什麼會這樣子不明
09/21 20:52, 11F

09/21 20:52, , 12F
錯誤在在顯示圖片的時候會跟裁切的程式碼衝突
09/21 20:52, 12F

09/21 20:53, , 13F
實際衝突的點不清楚。解決方式是在顯示的時候
09/21 20:53, 13F

09/21 20:55, , 14F
用一個picturebox.image=new Bitmap(image);
09/21 20:55, 14F

09/22 21:29, , 15F
請查一下 Bitmap.LockBits Bitmap.UnlockBits
09/22 21:29, 15F
文章代碼(AID): #1EUN2FnZ (C_Sharp)
文章代碼(AID): #1EUN2FnZ (C_Sharp)