看板 C_Sharp 關於我們 聯絡資訊
最近用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)
ONLYSMART:return newbmp 不就好了? 09/21 14:08
stelliver:我試過 return newbmp 跟 return new bitmap一樣會出錯 09/21 14:36
ONLYSMART:剪出來的Bitmap, 用完後有沒有dispose(); 09/21 15:03
stelliver:我嘗試設一個bmp1去承接bmp後再做dispose一樣會出現錯誤 09/21 15:55
stelliver:但是這次錯誤是錯誤是出現在bmp1那邊 09/21 15:55
ONLYSMART:釋放後還要設成null 有嗎?你這方法除了少例外處理, 其他 09/21 16:25
ONLYSMART:跟我用的差不多,所以我看不出那裏有錯, 等高手回答吧! 09/21 16:25
Laluth:用using包起來試看看 09/21 17:15
stelliver:有設成NULL,還是無法解決。using不會用去爬文 晚點回報 09/21 18:44
stelliver:我嘗試過了 雖然不確定有沒有用對但是沒有效果 09/21 19:55
stelliver:我找到問題了,但是為什麼會這樣子不明 09/21 20:52
stelliver:錯誤在在顯示圖片的時候會跟裁切的程式碼衝突 09/21 20:52
stelliver:實際衝突的點不清楚。解決方式是在顯示的時候 09/21 20:53
stelliver:用一個picturebox.image=new Bitmap(image); 09/21 20:55
proach:請查一下 Bitmap.LockBits Bitmap.UnlockBits 09/22 21:29