设置设备参数: 修改设备属性

这个程序演示的是如何使用 IC Imaging Control 修改设备属性。
语言:Visual Basic 6
版本:3.0.3
发布于:2005年4月7日
作者:IC Imaging Control 技术支持部
系统要求:IC Imaging Control >2.1
由WDM数据流类驱动程序驱动的相机、视频转换器或图像采集卡

IC Imaging Control 提供了类 VCDSimpleProperty 用于对设备进行设置:

Private VCDProp As VCDSimpleProperty

下面的示例程序将介绍如何使用IC Imaging Control编写一个Visual Basic程序,用以调节图像亮度。 首先,程序检测设备是否提供亮度自动模式。如不提供,则将对话框的复选框"Auto" (chkBrightnessAuto.Enabled = False)设为不可用状态;如设备提供自动模式, 则将其关闭 (VCDProp.Automation(VCDID_Brightness = False):

Private Sub Form_Load()

    ' If no device is selected yet, show the device selection dialog
    If Not ICImagingControl1.DeviceValid Then
        ICImagingControl1.ShowDeviceSettingsDialog

        If Not ICImagingControl1.DeviceValid Then
            MsgBox "No device was selected."
            Unload Me
            Exit Sub
        End If
    End If

    ' Initialize the VCDProp class to access the properties of our ICImagingControl
    ' object
    Set VCDProp = GetSimplePropertyContainer(ICImagingControl1.VCDPropertyItems)

    ' Initialize the auto checkbox
    If Not VCDProp.AutoAvailable(VCDID_Brightness) Then
        chkBrightnessAuto.Enabled = False
    Else
        VCDProp.Automation(VCDID_Brightness) = False
    End If

第二步,程序检测设备是否允许手动调整亮度参数。 如不提供,则将对话框的slider "Brightness" 设为不可用状态 (sldBrightness.Enabled = False)。 但如果设备允许手动调节,程序将根据设备的VCDProp.RangeMinVCDProp.RangeMax 和当前值VCDProp.RangeValue确定最小和最大值, 程序还将使用这些值初始化sldBrightness 和 lblBrightnessValue:

    ' Initialize the slider
    If Not VCDProp.Available(VCDID_Brightness) Then
        sldBrightness.Enabled = False
    Else
        sldBrightness.Enabled = True
        sldBrightness.Min = VCDProp.RangeMin(VCDID_Brightness)
        sldBrightness.Max = VCDProp.RangeMax(VCDID_Brightness)
        sldBrightness.Value = VCDProp.RangeValue(VCDID_Brightness)
        sldBrightness.TickFrequency = (sldBrightness.Max - sldBrightness.Min) / 10
        lblBrightnessValue = sldBrightness.Value
    End If

    ' start live mode
    ICImagingControl1.LiveStart
End Sub

当用户拖动 slider (sldBrightness)时,程序将新的亮度值 "Brightness" 写入 设备 (VCDProp.RangeValue(VCDID_Brightness)) 并将其显示在窗体中 (lblBrightnessValue):

' The Slider's event handler
Private Sub sldBrightness_Scroll()
    VCDProp.RangeValue(VCDID_Brightness) = sldBrightness.Value
    lblBrightnessValue = VCDProp.RangeValue(VCDID_Brightness)
End Sub

如用户点击复选框 "Auto" (chkBrightnessAuto),开启自动模式, 程序开启设备的自动模式(VCDProp.Automation(VCDID_Brightness) = True), 同时将 slider (sldBrightness.Enabled = False)设为不可用状态:

' The CheckBoxes' event handlers
Private Sub chkBrightnessAuto_Click()
    If chkBrightnessAuto.Value = 1 Then
        VCDProp.Automation(VCDID_Brightness) = True
        sldBrightness.Enabled = False
    Else
        VCDProp.Automation(VCDID_Brightness) = False
        sldBrightness.Enabled = True
    End If
End Sub

有关设置其它设备属性的过程与本示例程序类似,详细信息请参阅 IC Imaging Control 用户手册。

The dialog window of the sample application.

相关源代码示例

责任声明
IC Imaging Control 源代码库中的所有代码均只用于教学目的,The Imaging Source Europe GmbH 作为IC Imaging Control的开发制造商,不对任何由于使用本文或其中源代码所产生的后果承担责任。

该网站为The Imaging Source网络的一部分。其它的站点包括 公司, Imaging, 天文相机, Astronomy Cameras Blog, Blog caméras d'astronomie, 天文相机有奖竞答, TX Text Control, LiveDocx, phpLiveDocxForum.