2

私はカレッジ スクール向けに C# でソフトウェアを作成していますが、これについてサポートが必要です。

ここに画像の説明を入力

使用した Youtube チュートリアル: http://www.youtube.com/watch?v=CaYQLq72ZN4

ビデオ画像のキャプチャ中にエラーが発生しました。ビデオ キャプチャが終了します。オブジェクト参照がオブジェクト インスタンスに設定されていません。

初めてソフトウェアを実行したときは完全に機能しましたが、閉じて再度開くと、このエラーが発生しました(プロセスが実行されているようです)。YouTube のチュートリアルに従ってみましたが、同様のエラーが原因で多くの苦情が寄せられていることに気付きました。はい、動作しますが、「開始」ボタンを3回押した場合にのみ、エラーがわかりません。

コード:

FRM:

using System;
using System.Linq;
using System.Text;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.ComponentModel;
using System.Collections.Generic;

namespace WinApp_FingerControl
{
    public partial class Frm_CadastroCliente : Form
    {

        public Frm_CadastroCliente()
        {
            InitializeComponent();
        }
        WebCam webcam;
        private void Frm_CadastroCliente_Load(object sender, EventArgs e)
        {
            webcam = new WebCam();
            webcam.InitializeWebCam(ref imgVideo);
        }

        private void btn_IniciarCamera_Click(object sender, EventArgs e)
        {
            webcam.Start();
        }

        private void btn_Salvar_Click(object sender, EventArgs e)
        {
            Helper.SaveImageCapture(imgCapture.Image);
        }

        private void btn_FormatoVideo_Click(object sender, EventArgs e)
        {
            webcam.ResolutionSetting();
        }

        private void btnCapturar_Click(object sender, EventArgs e)
        {
            imgCapture.Image = imgVideo.Image;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            webcam.AdvanceSetting();
        }


    }
}

Webcam.cs:

{

    class WebCam
    {
        private WebCamCapture webcam;
        private System.Windows.Forms.PictureBox _FrameImage;
        private int FrameNumber = 30;
        public void InitializeWebCam(ref System.Windows.Forms.PictureBox ImageControl)
        {
            webcam = new WebCamCapture();
            webcam.FrameNumber = ((ulong)(0ul));
            webcam.TimeToCapture_milliseconds = FrameNumber;
            webcam.ImageCaptured += new WebCamCapture.WebCamEventHandler(webcam_ImageCaptured);
            _FrameImage = ImageControl;
        }

        void webcam_ImageCaptured(object source, WebcamEventArgs e)
        {
            _FrameImage.Image = e.WebCamImage;
        }

        public void Start()
        {
                webcam.TimeToCapture_milliseconds = FrameNumber;
                webcam.Start(0);
        }

        public void ResolutionSetting()
        {
            webcam.Config();
        }

        public void AdvanceSetting()
        {
            webcam.Config2();
        }

    }
}

Helper.cs

class Helper
{

    public static void SaveImageCapture(System.Drawing.Image image)
    {

        SaveFileDialog s = new SaveFileDialog();
        s.FileName = "Image";// Default file name
        s.DefaultExt = ".Jpg";// Default file extension
        s.Filter = "Image (.jpg)|*.jpg"; // Filter files by extension

        // Show save file dialog box
        // Process save file dialog box results
        if (s.ShowDialog()==DialogResult.OK)
        {
            // Save Image
            string filename = s.FileName;
            FileStream fstream = new FileStream(filename, FileMode.Create);
            image.Save(fstream, System.Drawing.Imaging.ImageFormat.Jpeg);
            fstream.Close();

        }

    }
}
4

1 に答える 1

-6

ウェブカメラを使用する Skype などの他のアプリケーションのプロセスを強制終了すると、コードが実行されます。:)

于 2014-07-17T10:14:07.823 に答える