
| 語言: | .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的開發製造商,不對任何由於使用本文或其中源代碼所產生的後果承擔責任。