
| 语言: | .NET C#/Visual Basic |
| 版本: | 3.0.3 |
| 发布于: | 2005年4月7日 |
| 作者: | IC Imaging Control 技术支持部 |
| 系统要求: | IC Imaging Control >2.1 由WDM数据流类驱动程序驱动的相机、视频转换器或图像采集卡 |
| |
程序窗口如图所示:

IC Imaging Control 提供了VCDSimpleProperty 类用于调整视频设备:
[C#] private VCDSimpleProperty vcdProp = null;
[VB.NET] Private VCDProp As VCDSimpleProperty
程序在Form1_load中创建一个VCDSimpleProperty 类的实例:
[C#] vcdProp = new VCDSimpleProperty( icImagingControl1.VCDPropertyItems );
[VB.NET] VCDProp = VCDSimpleModule.GetSimplePropertyContainer(ICImagingControl1.VCDPropertyItems)
程序首先检测设备是否提供亮度自动模式。 如不提供,则复选框Auto (chkBrightnessAuto.Enabled = False) 被设为不可用状态。 如提供,程序将其关闭(VCDProp.Automation(VCDID_Brightness = False):
[C#] if( !vcdProp.AutoAvailable( VCDIDs.VCDID_Brightness ) ) { chkBrightnessAuto.Enabled = false; } else { vcdProp.Automation[VCDIDs.VCDID_Brightness] = false; }
[VB.NET] If Not VCDProp.AutoAvailable(VCDIDs.VCDID_Brightness) Then BrightnessAutoCheckBox.Enabled = False Else VCDProp.Automation(VCDIDs.VCDID_Brightness) = False End If
而后,程序检测设备是否允许手动调节亮度。 如不允许,程序的slider Brightness (sldBrightness.Enabled = False ) 会被设为不可用状态。 如允许,程序确定设备提供的最小和最大值(VCDProp.RangeMin 和 VCDProp.RangeMax),以及当前值(VCDProp.RangeValue), 而后使用这些值初始化sldBrightness 和 lblBrightnessValue:
[C#] 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(); }
[VB.NET] 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
用户调节 slider sldBrightness时,程序把新的亮度值写入设备(VCDProp.RangeValue(VCDID_Brightness)) 并将其显示在程序窗体中 ( lblBrightnessValue):
[C#] private void sldBrightness_Scroll(object sender, System.EventArgs e) { vcdProp.RangeValue[VCDIDs.VCDID_Brightness] = sldBrightness.Value; lblBrightnessValue.Text = sldBrightness.Value.ToString(); }
[VB.NET] 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),把slider (sldBrightness.Enabled = False)设为不可用状态:
[C#] private void chkBrightnessAuto_CheckedChanged(object sender, System.EventArgs e) { vcdProp.Automation[VCDIDs.VCDID_Brightness] = chkBrightnessAuto.Checked; sldBrightness.Enabled = !chkBrightnessAuto.Checked; }
[VB.NET] 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
设备其它属性的调整与本例类似,详细信息请参阅 IC Imaging Control 使用指南。
责任声明
IC Imaging Control 源代码库中的所有代码均只用于教学目的,The Imaging Source Europe GmbH 作为IC Imaging Control的开发制造商,不对任何由于使用本文或其中源代码所产生的后果承担责任。