C#中picturebox控制元件的使用

來源:酷知科普網 2.9W

picturebox控制元件是C#常用的一個控制元件,對於我這種影象處理研究方向,picturebox更是必不可少的。在做研究的過程中,我經常會遇到一個問題,就是怎麼使得我的picturebox能夠隨著我處理影象的大小而隨之改變,不過這個問題在網上,高手基本上無視,像我這樣的新手又很是需要,直到我看別人寫的一個程式中才找到我要的答案,所以在這裡寫出來,希望和我這樣的新手能夠得到參考。

操作方法

(01)新建一個winform工程,新增一個button和picturebox控制元件,如圖所示

C#中picturebox控制元件的使用

(02)新增如下程式碼,該程式是讀取我的攝像頭,cannys運算元處理後在picturebox控制元件上顯示,程式中只是簡單使用了EmguCV的函式,不懂的可以見我另外一篇經驗EmguCV學習using Emgu.CV;using Emgu.CV.Structure;using Emgu.Util;namespace EEmguCV1{public partial class Form1 : Form{public Form1(){InitializeComponent();}Capture cam;private void btopen_Click(object sender, EventArgs e){cam = new Capture();Application.Idle += new EventHandler(processframe);}private void processframe(object sender, EventArgs arg){Image<Bgr, Byte> frame = cam.QueryFrame();Image<Gray,Byte> Ecanny=frame.Convert<Gray,Byte>();pictureBox1.Image = Ecanny.Canny(new Gray(100), new Gray(60)).Bitmap;}}}

C#中picturebox控制元件的使用 第2張

(03)很明顯picturebox控制元件只顯示了一小部分內容,我想全部顯示怎麼辦,這裡我們找到pictureBox控制元件的屬性,找到sizemode項,設定成autosize。

C#中picturebox控制元件的使用 第3張
C#中picturebox控制元件的使用 第4張

(04)很顯然這種顯示也只是一部分,另外一部分顯然是被窗體阻擋啦,所以我們需要把窗體也設定下。找到autosize將flase改成ture即可。

C#中picturebox控制元件的使用 第5張
C#中picturebox控制元件的使用 第6張

(05)不過這樣有點不方便,需要之前設定,怎麼能夠在開啟影象後根據實際情況自己調節模式呢?我這裡添加了一個選單欄,依此鍵入如圖所示的值,並新增如下程式碼。private void normalToolStripMenuItem_Click(object sender, EventArgs e){pictureBox1.SizeMode = PictureBoxSizeMode.Normal;}private void sToolStripMenuItem_Click(object sender, EventArgs e){pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;}private void autosizeToolStripMenuItem_Click(object sender, EventArgs e){pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;}執行效果如圖所示。

C#中picturebox控制元件的使用 第7張
C#中picturebox控制元件的使用 第8張
C#中picturebox控制元件的使用 第9張
C#中picturebox控制元件的使用 第10張

特別提示

上述程式都是在VS2008和EmguCV 2.3版本執行,如果不一致,可能執行結果不同。

熱門標籤