設置設備參數: 修改設備屬性

這個程序演示的是如何使用 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.