0

私はc#、ショッピングモールで見ることができる写真キオスクのようなものを使用してWinformアプリケーションを開発しています。

ウェブカメラから画像をキャプチャし、easywebcamコンポーネントを使用してキャプチャした画像を保存する方法を見つけることができました。ただし、ウェブカメラのストリーミングビデオの周りにフォトフレームを配置したいので、画像をキャプチャすると、フォトフレームも含まれます。

私は何日も研究をしてきましたが、それでもこれについては何もわかりません。誰かが私にこれを教えてくれますか?

4

2 に答える 2

0

私はC#のWebカメラを操作するためにAForgeライブラリを使用しましたが、APIがどれほどクリーンであるかが気に入りました。ビデオにタイムスタンプを追加する方法、スナップショットを撮る方法などのサンプルは次のとおりです。http: //www.aforgenet.com/framework/samples/video.html

私が正しく理解していれば、スナップショットを撮るときに元のフレームが必要なので、フレームにペイントする前にそのコピーを作成します。

Image lastUneditedFrame;

private void VideoSourcePlayer_NewFrame(object sender, ref Bitmap image)
    {
        if (lastUneditedFrame != null) 
        {
             lastUneditedFrame.Dispose();
        }

        lastUneditedFrame = image.Clone(new Rectangle(0, 0, image.Width, image.Height), image.PixelFormat);

        var graphics = Graphics.FromImage(image);

        // do the drawing of photo frame

        graphics.Dispose();
    }

// on snapshot button click, simply call lastUneditedFrame.Save();
于 2012-10-08T08:42:44.190 に答える
0

お返事ありがとうございます。あなたが言及した_NewFrameイベントでテストし、以下のようにオーバーレイメソッドに追加しました。

private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    Bitmap img = (Bitmap)eventArgs.Frame.Clone();

    // Perform Overlay here
    Graphics camImg = Graphics.FromImage(img);
    Bitmap frame = new Bitmap(@"D:\PriusC1.png");
    camImg.DrawImage(frame, new Point(100, 100));
    camImg.Save();

    pictureBox1.Image = img;
}

そしてそれは魅力のように働きました、どうもありがとうございました!

于 2012-10-08T10:30:25.997 に答える