C#中picturebox控件的使用

2025-09-28 20:43:16

1、新建一个winform工程,添加一个button和picturebox控件,如图所示

C#中picturebox控件的使用

2、添加如下代码,该程序是读取我的摄像头,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控件的使用

3、很明显picturebox控件只显示了一小部分内容,我想全部显示怎么办,这里我们找到pictureBox控件的属性,找到sizemode项,设置成autosize。

C#中picturebox控件的使用

C#中picturebox控件的使用

4、很显然这种显示也只是一部分,另外一部分显然是被窗体阻挡啦,所以我们需要把窗体也设置下。找到autosize将flase改成ture即可。

C#中picturebox控件的使用

C#中picturebox控件的使用

5、不过这样有点不方便,需要之前设置,怎么能够在打开图像后根据实际情况自己调节模式呢?我这里添加了一个菜单栏,依此键入如图所示的值,并添加如下代码。

       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控件的使用

C#中picturebox控件的使用

C#中picturebox控件的使用

C#中picturebox控件的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢