カメラ選択フォーム

Namespace: FVIL.DS
Assembly: FVILforms (in FVILforms.dll) Version: 3.1.0.0 (3.1.0.9)

Syntax

C#
public class SelectCameraForm : Form
Visual Basic
Public Class SelectCameraForm
	Inherits Form

Remarks

PCに接続されているDirectShow 対応のカメラから 取り込みに使用するカメラの選択および設定を行う為のダイアログです。


実行時:

[デバイス]:
接続されているDirectShow 対応のカメラがこのコントロールに表示されます。複数接続されている場合にはドロップダウンリストに一覧表示されます。
ここで表示される情報のリストはGetFilterList()()()() で取得できます。 設定値はプロパティFilterInfoまたはGetParam()()()() から取得できます。

[出力]:
選択したカメラが対応している出力方法を表示します。カメラにより「キャプチャ」「静止画」などが選択できます。
ここで表示される情報のリストはGetPinList(Int32) で取得できます。 設定値はプロパティPinInfoまたはGetParam()()()()から取得できます。

[フォーマット]:
出力フォーマット形式を表示します。
ここで表示される情報のリストはGetFormatList(Int32, Int32) で取得できます。 設定値はプロパティFormatInfoまたはGetParam()()()()から取得できます。


(デバイス)[プロパティ]:
カメラを選択した状態でクリックすると、下図のようなデバイスのプロパティページを表示します。 カメラを選択せずにクリックすると、アプリケーションが強制終了される場合があります。

プロパティページの内容はカメラにより異なります。 下図のスクリーンショットは一例であり、他メーカーおよび他機種では異なった外見となる可能性があります。


(出力)[プロパティ]:
カメラを選択した状態でクリックすると、下図のような出力のプロパティページを表示します。 カメラを選択せずにクリックすると、アプリケーションが強制終了される場合があります。

プロパティページの内容はカメラにより異なります。 下図のスクリーンショットは一例であり、他メーカーおよび他機種では異なった外見となる可能性があります。


Examples

ソースコード:
C# Copy imageCopy
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using fvalgcli;
using System.Windows.Forms;
using FVIL.DS;

namespace User.SampleCode
{
    public partial class DS
    {
        /// <summary>
        /// カメラ選択フォーム.
        /// </summary>
        /// <remarks>
        /// カメラ選択ダイアログを表示します.
        /// </remarks>
        [FvPluginExecute]
        public void SelectCameraForm_Show()
        {
            try
            {
                // 1) インスタンスの生成.
                FVIL.DS.SelectCameraForm form = new FVIL.DS.SelectCameraForm();

                // 2) カメラ選択ダイアログの表示.
                form.ShowDialog();

                // 3) パラメータの取得.
                FVIL.DS.CFviGrabberParam param = form.GetParam();

                // 4) XMLファイル保存.(書式:Name_WxH.xml)
                {
                    string filename = string.Format("{0}_{1}x{2}.xml",
                        param.FilterInfo.Name,
                        param.FilterFormatInfo.VideoSize.Width,
                        param.FilterFormatInfo.VideoSize.Height
                    );
                    FVIL.File.Function.SaveXml(filename, param);
                }

                // E) 確認.
                {
                    Console.WriteLine("FilterCategory    : {0}", param.FilterCategory);
                    Console.WriteLine("FilterFormatInfo : {0}", param.FilterFormatInfo);
                    Console.WriteLine("FilterInfo        : {0}", param.FilterInfo);
                    Console.WriteLine("FilterPinInfo    : {0}", param.FilterPinInfo);
                    Console.WriteLine("RenderID            : {0}", param.RenderID);
                    Console.WriteLine("SampleFormatInfo : {0}", param.SampleFormatInfo);

                    Console.WriteLine("プロパティ:FilterInfo : {0}", form.FilterInfo);
                    Console.WriteLine("プロパティ:PinInfo : {0}", form.PinInfo);
                    Console.WriteLine("プロパティ:FormatInfo : {0}", form.FormatInfo);
                }
            }
            catch (FVIL.DS.CFviExceptionDS ex)
            {
                Console.WriteLine("Message:{0}", ex.Message );
                Console.WriteLine("DSMessage:{0}", CFviExceptionDS.GetDirectShowMessage(ex.ComError));
            }
            catch (FVIL.CFviException ex)
            {
                Console.WriteLine("--Function = {0} ErrorCode = {1}", ex.Function, ex.ErrorCode);
                Console.WriteLine("--Message:{0}", ex.Message);
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("--Message:{0}", ex.Message);
            }
        }
    }
}


Visual Basic Copy imageCopy
Imports System.Collections.Generic
Imports System.Text
Imports System.Drawing
Imports fvalgcli
Imports System.Windows.Forms
Imports FVIL.DS

Namespace SampleCode
    Public Partial Class DS
        ''' <summary>
        ''' カメラ選択フォーム.
        ''' </summary>
        ''' <remarks>
        ''' カメラ選択ダイアログを表示します.
        ''' </remarks>
        <FvPluginExecute> _
        Public Sub SelectCameraForm_Show()
            Try
                ' 1) インスタンスの生成.
                Dim form As New FVIL.DS.SelectCameraForm()

                ' 2) カメラ選択ダイアログの表示.
                form.ShowDialog()

                ' 3) パラメータの取得.
                Dim param As FVIL.DS.CFviGrabberParam = form.GetParam()

                ' 4) XMLファイル保存.(書式:Name_WxH.xml)
                If True Then
                    Dim filename As String = String.Format("{0}_{1}x{2}.xml", param.FilterInfo.Name, param.FilterFormatInfo.VideoSize.Width, param.FilterFormatInfo.VideoSize.Height)
                    FVIL.File.[Function].SaveXml(filename, param)
                End If

                ' E) 確認.
                If True Then
                    Console.WriteLine("FilterCategory" & vbTab & ": {0}", param.FilterCategory)
                    Console.WriteLine("FilterFormatInfo : {0}", param.FilterFormatInfo)
                    Console.WriteLine("FilterInfo" & vbTab & vbTab & ": {0}", param.FilterInfo)
                    Console.WriteLine("FilterPinInfo" & vbTab & ": {0}", param.FilterPinInfo)
                    Console.WriteLine("RenderID" & vbTab & vbTab & vbTab & ": {0}", param.RenderID)
                    Console.WriteLine("SampleFormatInfo : {0}", param.SampleFormatInfo)

                    Console.WriteLine("プロパティ:FilterInfo : {0}", form.FilterInfo)
                    Console.WriteLine("プロパティ:PinInfo : {0}", form.PinInfo)
                    Console.WriteLine("プロパティ:FormatInfo : {0}", form.FormatInfo)
                End If
            Catch ex As FVIL.DS.CFviExceptionDS
                Console.WriteLine("Message:{0}", ex.Message)
                Console.WriteLine("DSMessage:{0}", CFviExceptionDS.GetDirectShowMessage(ex.ComError))
            Catch ex As FVIL.CFviException
                Console.WriteLine("--Function = {0} ErrorCode = {1}", ex.[Function], ex.ErrorCode)
                Console.WriteLine("--Message:{0}", ex.Message)
            Catch ex As System.Exception
                Console.WriteLine("--Message:{0}", ex.Message)
            End Try
        End Sub
    End Class
End Namespace

Inheritance Hierarchy

System..::..Object
System..::..MarshalByRefObject
System.ComponentModel..::..Component
System.Windows.Forms..::..Control
System.Windows.Forms..::..ScrollableControl
System.Windows.Forms..::..ContainerControl
System.Windows.Forms..::..Form
FVIL.DS..::..SelectCameraForm

See Also