AdjustSaturationControl.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PaintDotNet.Base.SettingModel;
  11. using TUCamera;
  12. namespace PaintDotNet.ImageCollect.CameraComponent
  13. {
  14. public partial class AdjustSaturationControl : UserControl
  15. {
  16. private TUCamera.TUCamera m_camera;
  17. private CameraParamModel m_cameraParamModel;
  18. private bool m_use;
  19. private void InitializeLanguageText()
  20. {
  21. this.groupBox4.Text = PdnResources.GetString("Menu.Colorandsaturation.Text");
  22. this.label13.Text = PdnResources.GetString("Menu.saturation.text") + ":";
  23. }
  24. public AdjustSaturationControl(CameraParamModel model, bool use)
  25. {
  26. InitializeComponent();
  27. InitializeLanguageText();
  28. m_use = use;
  29. m_camera = TUCameraManager.GetInstance().GetCurrentCamera();
  30. m_cameraParamModel = model;
  31. InitializeControlData();
  32. }
  33. public void ReLoad(CameraParamModel model, bool use)
  34. {
  35. m_cameraParamModel = model;
  36. m_use = use;
  37. InitializeControlData();
  38. }
  39. private void InitializeControlData()
  40. {
  41. if (m_camera.IsOpen())
  42. {
  43. // 饱和度
  44. int minVal = 0;
  45. int maxVal = 0;
  46. m_camera.GetSaturationRange(ref minVal, ref maxVal);
  47. trbSaturation.SetRange(minVal, maxVal);
  48. lblSaturationMinVal.Text = ((int)minVal).ToString();
  49. lblSaturationMaxVal.Text = ((int)maxVal).ToString();
  50. }
  51. // 饱和度
  52. int baoheduTBarValue = this.m_cameraParamModel.parame.Saturation;
  53. if (baoheduTBarValue >= this.trbSaturation.Minimum && baoheduTBarValue <= this.trbSaturation.Maximum)
  54. {
  55. this.trbSaturation.Value = this.m_cameraParamModel.parame.Saturation;
  56. }
  57. }
  58. private void trbSaturation_ValueChanged(object sender, EventArgs e)
  59. {
  60. this.m_cameraParamModel.parame.Saturation = this.trbSaturation.Value;
  61. this.txtSaturation.Text = this.trbSaturation.Value.ToString();
  62. // 设置到相机
  63. if (m_use)
  64. {
  65. m_camera.SetSaturation(this.m_cameraParamModel.parame.Saturation); //usec
  66. }
  67. }
  68. private void txtSaturation_KeyPress(object sender, KeyPressEventArgs e)
  69. {
  70. if (!char.IsDigit(e.KeyChar) && (e.KeyChar != (char)Keys.Enter)) // 非数字键, 放弃该输入
  71. {
  72. e.Handled = true;
  73. return;
  74. }
  75. if (e.KeyChar == (char)Keys.Enter)
  76. {
  77. try
  78. {
  79. int saturationVal = Convert.ToInt32(txtSaturation.Text);
  80. if (saturationVal > trbSaturation.Maximum)
  81. {
  82. saturationVal = trbSaturation.Maximum;
  83. }
  84. if (saturationVal < trbSaturation.Minimum)
  85. {
  86. saturationVal = trbSaturation.Minimum;
  87. }
  88. trbSaturation.Value = saturationVal;
  89. }
  90. catch (Exception ex)
  91. {
  92. MessageBox.Show(ex.Message);
  93. }
  94. }
  95. }
  96. }
  97. }