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 System.Collections; using PaintDotNet.ImageCollect; using PaintDotNet.Camera; namespace PaintDotNet.Preview2 { /// /// 相机设置,常规界面 /// public class OtherControl : UserControl { #region 控件 private GroupBox gbxShadingCorrection; private GroupBox gbxSharpening; #endregion /// /// 相机参数的Model /// private CameraParamModel.ParameterSets _settings { get { return CameraConfigs.Settings; } } private ICamera m_camera => CameraManager.CurrentCamera; private CameraParamBar2 pmbSharpness; private Button btnCapTempl; private CheckBox checkBox1; private RadioButton radioButton2; private Button button1; private Panel panel1; private RadioButton radioButton1; public OtherControl() { InitializeComponent(); } public void Initialize() { InitializeLanguageText(); InitializeData(); } /// /// 绑定样式数据 /// private void InitializeData() { if (m_camera.IsOpen()) { Range range = m_camera.GetSharpnessRange(); pmbSharpness.DecimalPalces = 0; pmbSharpness.Max = (int)range.Max; pmbSharpness.Min = (int)range.Min; pmbSharpness.Value = _settings.Sharpness; pmbSharpness.OnValueChange += (value) => { m_camera.Sharpness = value; }; UpdateSettings(); } checkBox1.Checked = Preview2Context.ShandingCorrectionState != 0; radioButton1.Checked = Preview2Context.ShandingCorrectionState == 1; radioButton2.Checked = Preview2Context.ShandingCorrectionState == 2; } public void UpdateSettings() { checkBox1.Checked = _settings.FlatFieldCorrection != 0; checkBox1_CheckedChanged(null, null); radioButton1.Checked = _settings.FlatFieldCorrection == 1; radioButton2.Checked = _settings.FlatFieldCorrection == 2; radioButton2_CheckedChanged(null, null); } #region 初始化组件 private void InitializeLanguageText() { this.gbxShadingCorrection.Text = PdnResources.GetString("Menu.Image.ShadingCorrection.Text"); this.gbxSharpening.Text = PdnResources.GetString("Menu.Imagesharpening.text"); pmbSharpness.Caption = PdnResources.GetString("Menu.Sharpeningstrength.text"); this.checkBox1.Text = PdnResources.GetString("Preview2.EnableShadowCorrection"); this.radioButton2.Text =PdnResources.GetString("Preview2.CameraCorrection"); this.radioButton1.Text = PdnResources.GetString("Preview2.SoftwareCorrection"); this.button1.Text = PdnResources.GetString("Menu.compute.text"); this.btnCapTempl.Text = PdnResources.GetString("Preview2.ShootingCorrectionTemplate"); } /// /// 初始化组件 /// private void InitializeComponent() { this.gbxShadingCorrection = new System.Windows.Forms.GroupBox(); this.panel1 = new System.Windows.Forms.Panel(); this.button1 = new System.Windows.Forms.Button(); this.btnCapTempl = new System.Windows.Forms.Button(); this.radioButton2 = new System.Windows.Forms.RadioButton(); this.radioButton1 = new System.Windows.Forms.RadioButton(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.gbxSharpening = new System.Windows.Forms.GroupBox(); this.pmbSharpness = new PaintDotNet.Preview2.CameraParamBar2(); this.gbxShadingCorrection.SuspendLayout(); this.panel1.SuspendLayout(); this.gbxSharpening.SuspendLayout(); this.SuspendLayout(); // // gbxShadingCorrection // this.gbxShadingCorrection.Controls.Add(this.panel1); this.gbxShadingCorrection.Controls.Add(this.checkBox1); this.gbxShadingCorrection.Dock = System.Windows.Forms.DockStyle.Bottom; this.gbxShadingCorrection.Location = new System.Drawing.Point(0, 67); this.gbxShadingCorrection.Name = "gbxShadingCorrection"; this.gbxShadingCorrection.Size = new System.Drawing.Size(470, 95); this.gbxShadingCorrection.TabIndex = 2; this.gbxShadingCorrection.TabStop = false; this.gbxShadingCorrection.Text = "阴影校正"; // // panel1 // this.panel1.Controls.Add(this.button1); this.panel1.Controls.Add(this.btnCapTempl); this.panel1.Controls.Add(this.radioButton2); this.panel1.Controls.Add(this.radioButton1); this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel1.Location = new System.Drawing.Point(3, 42); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(464, 50); this.panel1.TabIndex = 6; // // button1 // this.button1.Location = new System.Drawing.Point(221, 26); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(59, 23); this.button1.TabIndex = 5; this.button1.Text = "计算"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // btnCapTempl // this.btnCapTempl.Location = new System.Drawing.Point(103, 26); this.btnCapTempl.Name = "btnCapTempl"; this.btnCapTempl.Size = new System.Drawing.Size(112, 23); this.btnCapTempl.TabIndex = 2; this.btnCapTempl.Text = "拍摄校正模板"; this.btnCapTempl.UseVisualStyleBackColor = true; this.btnCapTempl.Click += new System.EventHandler(this.btnCapTempl_Click); // // radioButton2 // this.radioButton2.AutoSize = true; this.radioButton2.Location = new System.Drawing.Point(26, 29); this.radioButton2.Name = "radioButton2"; this.radioButton2.Size = new System.Drawing.Size(71, 16); this.radioButton2.TabIndex = 4; this.radioButton2.Text = "相机校正"; this.radioButton2.UseVisualStyleBackColor = true; this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButton2_CheckedChanged); this.radioButton2.Click += new System.EventHandler(this.radioButton2_Click); // // radioButton1 // this.radioButton1.AutoSize = true; this.radioButton1.Checked = true; this.radioButton1.Location = new System.Drawing.Point(26, 7); this.radioButton1.Name = "radioButton1"; this.radioButton1.Size = new System.Drawing.Size(71, 16); this.radioButton1.TabIndex = 4; this.radioButton1.TabStop = true; this.radioButton1.Text = "软件校正"; this.radioButton1.UseVisualStyleBackColor = true; this.radioButton1.Click += new System.EventHandler(this.radioButton1_Click); // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.Location = new System.Drawing.Point(18, 20); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(96, 16); this.checkBox1.TabIndex = 3; this.checkBox1.Text = "启用阴影校正"; this.checkBox1.UseVisualStyleBackColor = true; this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged); this.checkBox1.Click += new System.EventHandler(this.checkBox1_Click); // // gbxSharpening // this.gbxSharpening.Controls.Add(this.pmbSharpness); this.gbxSharpening.Dock = System.Windows.Forms.DockStyle.Top; this.gbxSharpening.Location = new System.Drawing.Point(0, 8); this.gbxSharpening.Name = "gbxSharpening"; this.gbxSharpening.Padding = new System.Windows.Forms.Padding(4); this.gbxSharpening.Size = new System.Drawing.Size(470, 52); this.gbxSharpening.TabIndex = 3; this.gbxSharpening.TabStop = false; this.gbxSharpening.Text = "图像锐化"; // // pmbSharpness // this.pmbSharpness.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; this.pmbSharpness.Caption = "锐化强度"; this.pmbSharpness.DecimalPalces = -1; this.pmbSharpness.Dock = System.Windows.Forms.DockStyle.Top; this.pmbSharpness.IsFloat = false; this.pmbSharpness.IsRangeVisible = false; this.pmbSharpness.Location = new System.Drawing.Point(4, 18); this.pmbSharpness.Max = 100; this.pmbSharpness.Min = 0; this.pmbSharpness.Name = "pmbSharpness"; this.pmbSharpness.Padding = new System.Windows.Forms.Padding(4); this.pmbSharpness.Size = new System.Drawing.Size(462, 26); this.pmbSharpness.TabIndex = 0; this.pmbSharpness.Value = 0; // // OtherControl // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.Controls.Add(this.gbxShadingCorrection); this.Controls.Add(this.gbxSharpening); this.Name = "OtherControl"; this.Padding = new System.Windows.Forms.Padding(0, 8, 0, 0); this.Size = new System.Drawing.Size(470, 162); this.gbxShadingCorrection.ResumeLayout(false); this.gbxShadingCorrection.PerformLayout(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); this.gbxSharpening.ResumeLayout(false); this.ResumeLayout(false); } #endregion private void metroButton1_Click(object sender, EventArgs e) { } private void btnCapTempl_Click(object sender, EventArgs e) { m_camera.FlatCapture(); } private void radioButton2_Click(object sender, EventArgs e) { m_camera.FlatCorretion = 1; Preview2Context.ShandingCorrectionState = 2; } private void radioButton1_Click(object sender, EventArgs e) { m_camera.FlatCorretion = 0; Preview2Context.ShandingCorrectionState = 1; } private void button1_Click(object sender, EventArgs e) { m_camera.FlatCalculate(); Preview2Context.ShandingCorrectionState = 2; } private void checkBox1_Click(object sender, EventArgs e) { if (checkBox1.Checked) { if (radioButton1.Checked) { Preview2Context.ShandingCorrectionState = 1; } else if (radioButton2.Checked) { Preview2Context.ShandingCorrectionState = 0; m_camera.FlatCorretion = 1; } } else { Preview2Context.ShandingCorrectionState = 0; m_camera.FlatCorretion = 0; } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { panel1.Enabled = checkBox1.Checked; } private void radioButton2_CheckedChanged(object sender, EventArgs e) { btnCapTempl.Enabled = radioButton2.Checked; button1.Enabled = radioButton2.Checked; } } }