using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using PaintDotNet.Base.SettingModel; using TUCamera; namespace PaintDotNet.ImageCollect.CameraComponent { public partial class AdjustSaturationControl : UserControl { private TUCamera.TUCamera m_camera; private CameraParamModel m_cameraParamModel; private bool m_use; private void InitializeLanguageText() { this.groupBox4.Text = PdnResources.GetString("Menu.Colorandsaturation.Text"); this.label13.Text = PdnResources.GetString("Menu.saturation.text") + ":"; } public AdjustSaturationControl(CameraParamModel model, bool use) { InitializeComponent(); InitializeLanguageText(); m_use = use; m_camera = TUCameraManager.GetInstance().GetCurrentCamera(); m_cameraParamModel = model; InitializeControlData(); } public void ReLoad(CameraParamModel model, bool use) { m_cameraParamModel = model; m_use = use; InitializeControlData(); } private void InitializeControlData() { if (m_camera.IsOpen()) { // 饱和度 int minVal = 0; int maxVal = 0; m_camera.GetSaturationRange(ref minVal, ref maxVal); trbSaturation.SetRange(minVal, maxVal); lblSaturationMinVal.Text = ((int)minVal).ToString(); lblSaturationMaxVal.Text = ((int)maxVal).ToString(); } // 饱和度 int baoheduTBarValue = this.m_cameraParamModel.parame.Saturation; if (baoheduTBarValue >= this.trbSaturation.Minimum && baoheduTBarValue <= this.trbSaturation.Maximum) { this.trbSaturation.Value = this.m_cameraParamModel.parame.Saturation; } } private void trbSaturation_ValueChanged(object sender, EventArgs e) { this.m_cameraParamModel.parame.Saturation = this.trbSaturation.Value; this.txtSaturation.Text = this.trbSaturation.Value.ToString(); // 设置到相机 if (m_use) { m_camera.SetSaturation(this.m_cameraParamModel.parame.Saturation); //usec } } private void txtSaturation_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar) && (e.KeyChar != (char)Keys.Enter)) // 非数字键, 放弃该输入 { e.Handled = true; return; } if (e.KeyChar == (char)Keys.Enter) { try { int saturationVal = Convert.ToInt32(txtSaturation.Text); if (saturationVal > trbSaturation.Maximum) { saturationVal = trbSaturation.Maximum; } if (saturationVal < trbSaturation.Minimum) { saturationVal = trbSaturation.Minimum; } trbSaturation.Value = saturationVal; } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } }