デバイスプロパティの設定
ここでは、ビデオキャプチャデバイスのプロパティアイテムをコード上で編集する方法を示しています。
| Software | IC Imaging Control 3.4, Visual Studio™ 2019 | 
|---|---|
| サンプル(C#) | modifying_Device_properties_cs_3.4.zip | 
| サンプル(VB.NET) | modifying_Device_properties_vb_3.4.zip | 

ICImagingControlでビデオキャプチャデバイスのプロパティ設定を行うにはVCDSimplePropertyクラスを使用します。
private VCDSimpleProperty vcdProp = null;Private VCDProp As TIS.Imaging.VCDHelpers.VCDSimplePropertyForm1_loadにVCDSimplePropertyクラスのインスタンスを作成します。
vcdProp = new VCDSimpleProperty( icImagingControl1.VCDPropertyItems );VCDProp = TIS.Imaging.VCDHelpers.VCDSimpleModule.GetSimplePropertyContainer(ICImagingControl1.VCDPropertyItems)
最初に"Brightness"パラメータがオートモードをサポートしているかどうかをチェックします。もしサポートされていない場合、チェックボックスAutoはchkBrightnessAuto.Enabled = Falseとして無効にします。もしサポートされている場合、プログラムはVCDProp.Automation(VCDID_Brightness = Falseにより、明示的にオフとします。
if( !vcdProp.AutoAvailable( VCDIDs.VCDID_Brightness ) )
{
    chkBrightnessAuto.Enabled = false;
}
else
{
    vcdProp.Automation[VCDIDs.VCDID_Brightness] = false;
}If Not VCDProp.AutoAvailable(VCDIDs.VCDID_Brightness) Then
    BrightnessAutoCheckBox.Enabled = False
Else
    VCDProp.Automation(VCDIDs.VCDID_Brightness) = False
End If次にプログラムは"Brightness"パラメータが手動調整をサポートしているかどうかをチェックします。
  もしサポートされていない場合はsldBrightness.Enabled = FalseによりBrightnessスライダーは無効とします。
  サポートされている場合、デバイスがサポートしているその最小値、最大値(VCDProp.RangeMinとVCDProp.RangeMax)と現在の値(VCDProp.RangeValue)を取得します。これらの値はスライダーのsldBrightnessとlblBrightnessValueに割り当てます。
if( !vcdProp.Available( VCDIDs.VCDID_Brightness ) )
{
    sldBrightness.Enabled = false;
}
else
{
    sldBrightness.Minimum = vcdProp.RangeMin(VCDIDs.VCDID_Brightness);
    sldBrightness.Maximum = vcdProp.RangeMax(VCDIDs.VCDID_Brightness);
    sldBrightness.Value = vcdProp.RangeValue[VCDIDs.VCDID_Brightness];
    sldBrightness.TickFrequency = (sldBrightness.Maximum - sldBrightness.Minimum) / 10;
    lblBrightnessValue.Text = sldBrightness.Value.ToString();
}If Not VCDProp.Available(VCDIDs.VCDID_Brightness) Then
    BrightnessTrackBar.Enabled = False
Else
    BrightnessTrackBar.Enabled = True
    BrightnessTrackBar.Minimum = VCDProp.RangeMin(VCDIDs.VCDID_Brightness)
    BrightnessTrackBar.Maximum = VCDProp.RangeMax(VCDIDs.VCDID_Brightness)
    BrightnessTrackBar.Value = VCDProp.RangeValue(VCDIDs.VCDID_Brightness)
    BrightnessTrackBar.TickFrequency = (BrightnessTrackBar.Maximum - BrightnessTrackBar.Minimum) / 10
    BrightnessValueLabel.Text = BrightnessTrackBar.Value
End IfスライダーsldBrightnessを調節することにより"Brightness"値をVCDProp.RangeValue(VCDID_Brightness)とダイアログlblBrightnessValue に更新します。
private void sldBrightness_Scroll(object sender, System.EventArgs e)
{
    vcdProp.RangeValue[VCDIDs.VCDID_Brightness] = sldBrightness.Value;
    lblBrightnessValue.Text = sldBrightness.Value.ToString();
}Private Sub BrightnessTrackBar_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrightnessTrackBar.Scroll
    VCDProp.RangeValue(VCDIDs.VCDID_Brightness) = BrightnessTrackBar.Value
    BrightnessValueLabel.Text = VCDProp.RangeValue(VCDIDs.VCDID_Brightness)
End Sub
AutoのチェックボックスchkBrightnessAutoがチェックされると、デバイスを自動モードにセットVCDProp.Automation(VCDID_Brightness) = True)にして、スライダーを無効(sldBrightness.Enabled = False)にします。
private void chkBrightnessAuto_CheckedChanged(object sender, System.EventArgs e)
{
    vcdProp.Automation[VCDIDs.VCDID_Brightness] = chkBrightnessAuto.Checked;
    sldBrightness.Enabled = !chkBrightnessAuto.Checked;
}Private Sub BrightnessAutoCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrightnessAutoCheckBox.CheckedChanged
    VCDProp.Automation(VCDIDs.VCDID_Brightness) = BrightnessAutoCheckBox.Checked
    BrightnessTrackBar.Enabled = Not BrightnessAutoCheckBox.Checked
End Sub
デバイスの他の設定項目についても同様に設定する事ができます。設定の詳細についてはUser's Guideを参照してください。


