如何获取网络摄像头捕获的图片框图像路径

时间:2019-02-12 14:01:44

标签: c# winforms aforge

以我的形式。我有两个图片框和一个将图片捕获到图片框的按钮。

两个图片框

  • WebcamImage-表示实时摄像机图像
  • PreviewImage-表示从webcamimage捕获的图像

当我保存捕获的图像时,它将转到我的UserImage图片框(在我的Usercontrol中)

问题是我不知道如何获取图片框图像路径。
 我想要的是,当我单击保存的按钮时,图像路径将保存到我的标签文本中。

这是我的代码

PS:我正在使用Aforge.dll

public partial class CaptureImage : Form
{
    private FilterInfoCollection CaptureDevice;
    private VideoCaptureDevice FinalFrame;
    RegisterCustomer _view;
    public CaptureImage(RegisterCustomer view)
    {
        InitializeComponent();
        this._view = view;
    }
    private void CaptureImage_Load(object sender, EventArgs e)
    {
        CaptureDevice = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        foreach (FilterInfo Device in CaptureDevice)
        {
            comboBox1.Items.Add(Device.Name);
        }
        comboBox1.SelectedIndex = 0;
        FinalFrame = new VideoCaptureDevice();
        FinalFrame = new VideoCaptureDevice(CaptureDevice[comboBox1.SelectedIndex].MonikerString);
        if (FinalFrame.VideoCapabilities.Length > 0)
        {
            string highestSolution = "0;0";
            //Search for the highest resolution
            for (int i = 0; i < FinalFrame.VideoCapabilities.Length; i++)
            {
                if (FinalFrame.VideoCapabilities[i].FrameSize.Width > Convert.ToInt32(highestSolution.Split(';')[0]))
                    highestSolution = FinalFrame.VideoCapabilities[i].FrameSize.Width.ToString() + ";" + i.ToString();
            }
        }
        FinalFrame.NewFrame += new NewFrameEventHandler(FinalFrame_NewFrame);
        FinalFrame.Start();
        btn_save.Hide();
        btn_cancel.Hide();
    }
    void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        WebcamImage.Image = (Bitmap)eventArgs.Frame.Clone();
    }
    private void CaptureImage_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (FinalFrame.IsRunning == true)
        {
            FinalFrame.Stop();
        }
    }
    private void btn_save_Click(object sender, EventArgs e)
    {
        _view.UserImage.Image = PreviewImage.Image;
        this.Close();
    }
    private void btn_cancel_Click(object sender, EventArgs e)
    {
        this.Close();
    }
    private void btn_capture_Click(object sender, EventArgs e)
    {         
        PreviewImage.Image = (Bitmap)WebcamImage.Image.Clone();
        PreviewImage.BringToFront();          
        btn_capture.Hide();
        btn_save.Show();
        btn_cancel.Show();
    }
}

只有在使用openfile对话框获取图片框图像路径时,我才知道

using (OpenFileDialog ofd = new OpenFileDialog())
        {
            ofd.Filter = "Image Files (*.jpg;*.jpeg;.*.png; | *.jpg;*.jpeg;.*.png;)";
            ofd.FilterIndex = 1;
            ofd.Multiselect = false;
            ofd.Title = "Select Image File";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                location = ofd.FileName;
                path.Text = location;
                UserImage.Image = Image.FromFile(location);
                UserImage.SizeMode = PictureBoxSizeMode.StretchImage;             
            }
        }

0 个答案:

没有答案