2013-10-24 109 views
1

我有一個非常基本的問題。我有一個類型的變量:位圖。這個變量會隨着從網絡攝像頭接收到的每一幀更新。此變量聲明如下:將C#Picturebox設置爲位圖

Bitmap img=eventArgs.Frame; 

我已驗證上述行是否正常工作。 現在我需要知道的是如何將我的PictureBox上的PictureBox設置爲此位圖圖像。我曾嘗試以下方法:

pbImg.Image=img; 

這不起作用。任何幫助將不勝感激。

+0

拋出的任何異常? –

+0

也許你的位圖被丟棄? – jltrem

回答

3

攝像頭產生的位圖通常只有很短的使用壽命。它們僅在事件處理程序運行時有效,相機捕獲驅動程序會用新幀替換位圖。對於避免過多的內存使用非常重要。

因此,您必須製作圖像的深層副本,以便它可以在PictureBox中生存並且在事件調用完成後仍然繪製。像這樣:

Bitmap img = new Bitmap(eventArgs.Frame); 
    if (pbImg.Image != null) pbImg.Image.Dispose(); 
    pbImg.Image = img; 
+0

完美,謝謝! – Josh