From f33d70e42906e654cb99ea4e406137603537b9f4 Mon Sep 17 00:00:00 2001 From: zqm Date: Wed, 25 Mar 2026 14:16:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Camera/Camera/Camera.cs | 21 ++++++++++--------- .../CS/Framework4.0/Camera/Camera/Setting.cs | 12 +++++++++-- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/Windows/CS/Framework4.0/Camera/Camera/Camera.cs b/Windows/CS/Framework4.0/Camera/Camera/Camera.cs index 0efefa1..88ecc76 100644 --- a/Windows/CS/Framework4.0/Camera/Camera/Camera.cs +++ b/Windows/CS/Framework4.0/Camera/Camera/Camera.cs @@ -103,6 +103,7 @@ namespace Camera public void SetArea() { Setting settingForm = new Setting(); + settingForm.SetCamera(this); if (_currentImage != null) { settingForm.SetImage(_currentImage); @@ -219,10 +220,10 @@ namespace Camera { if (isDetectionZone) { - int x = int.Parse(parts[0]); - int y = int.Parse(parts[1]); - int width = int.Parse(parts[2]); - int height = int.Parse(parts[3]); + if (!int.TryParse(parts[0], out int x)) continue; + if (!int.TryParse(parts[1], out int y)) continue; + if (!int.TryParse(parts[2], out int width)) continue; + if (!int.TryParse(parts[3], out int height)) continue; _detectionZone = new Rectangle(x, y, width, height); } else if (parts[0] == "索引") @@ -231,13 +232,13 @@ namespace Camera } else { - int index = int.Parse(parts[0]); - if (index == 1) + if (!int.TryParse(parts[0], out int index)) continue; + if (index == 1 && parts.Length >= 5) { - int x = int.Parse(parts[1]); - int y = int.Parse(parts[2]); - int width = int.Parse(parts[3]); - int height = int.Parse(parts[4]); + if (!int.TryParse(parts[1], out int x)) continue; + if (!int.TryParse(parts[2], out int y)) continue; + if (!int.TryParse(parts[3], out int width)) continue; + if (!int.TryParse(parts[4], out int height)) continue; _ledZone = new Rectangle(x, y, width, height); } } diff --git a/Windows/CS/Framework4.0/Camera/Camera/Setting.cs b/Windows/CS/Framework4.0/Camera/Camera/Setting.cs index ba67ca6..e20cde0 100644 --- a/Windows/CS/Framework4.0/Camera/Camera/Setting.cs +++ b/Windows/CS/Framework4.0/Camera/Camera/Setting.cs @@ -60,7 +60,10 @@ namespace Camera public void SetConfigPath(string path) { - _camera.SetConfigPath(path); + if (_camera != null) + { + _camera.SetConfigPath(path); + } } private void InitializeDataGridView() @@ -320,6 +323,7 @@ namespace Camera { using (Pen pen = new Pen(Color.Red, 2)) { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; g.DrawRectangle(pen, scaledDetectionZone); } @@ -330,7 +334,6 @@ namespace Camera using (Font font = new Font("Arial", 10)) { - g.DrawString("检测区", font, Brushes.Red, scaledDetectionZone.X, scaledDetectionZone.Y - 15); g.DrawString("Led区", font, Brushes.Green, scaledLedZone.X, scaledLedZone.Y - 15); } } @@ -623,6 +626,8 @@ namespace Camera if (_isEditingDetectionZone) { _isEditingDetectionZone = false; + _isMoving = false; + _isResizing = false; toolStripButton1.Checked = false; toolStripButton1.ToolTipText = "修改检测区(点击开启)"; picBoxCamera.Invalidate(); @@ -631,6 +636,8 @@ namespace Camera if (_isEditingLedZone) { _isEditingLedZone = false; + _isMoving = false; + _isResizing = false; toolStripButton2.Checked = false; toolStripButton2.ToolTipText = "绘制Led区(点击开启)"; picBoxCamera.Invalidate(); @@ -837,6 +844,7 @@ namespace Camera { if (_camera != null) { + _camera.SaveConfig(); _camera.ImageCaptured -= Camera_ImageCaptured; } }