From cbfa25a6e8df52ff785be28f29d0b1ae1f39cbb3 Mon Sep 17 00:00:00 2001
From: C3031 <shitiangui@lanpucloud.cn>
Date: 星期三, 31 十二月 2025 13:34:38 +0800
Subject: [PATCH] qqq

---
 LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs          |    4 
 LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx                            |    2 
 LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx                      |   36 +-
 LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs               |    3 
 LB_SmartVision/ProcessRun/ProcessRunBll.cs                                       |    1 
 LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs                         |   42 ++--
 LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs                     |    6 
 LB_VisionProcesses/Cameras/CameraConfig.cs                                       |   36 +++
 LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs                |    2 
 LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.Designer.cs                |    1 
 LB_SmartVision/ProcessRun/ProcessContext.cs                                      |   33 +++
 LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs                        |   11 +
 LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs |  275 +++++++++++++++++++++++++-
 LB_SmartVision/VisionForm.Designer.cs                                            |   93 +++------
 14 files changed, 411 insertions(+), 134 deletions(-)

diff --git a/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs b/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs
index 96280ad..797a1a4 100644
--- a/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.Designer.cs
@@ -139,6 +139,7 @@
             // 
             // btnSetting
             // 
+            btnSetting.ForeColor = SystemColors.ControlText;
             btnSetting.Location = new Point(3, 18);
             btnSetting.Name = "btnSetting";
             btnSetting.Size = new Size(97, 29);
@@ -441,7 +442,7 @@
             controlBox1.EnableMaximizeButton = true;
             controlBox1.EnableMinimizeButton = true;
             controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
-            controlBox1.Location = new Point(800, 18);
+            controlBox1.Location = new Point(800, 12);
             controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
             controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
             controlBox1.Name = "controlBox1";
@@ -451,8 +452,7 @@
             // 
             // CameraForm
             // 
-            AutoScaleDimensions = new SizeF(96F, 96F);
-            AutoScaleMode = AutoScaleMode.Dpi;
+            AutoScaleMode = AutoScaleMode.None;
             ClientSize = new Size(900, 600);
             Controls.Add(themeForm1);
             FormBorderStyle = FormBorderStyle.None;
diff --git a/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx b/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx
index ef8fc70..ef7524c 100644
--- a/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx
+++ b/LB_SmartVision/Forms/Pages/CameraPage/CameraForm.resx
@@ -121,7 +121,7 @@
   <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        vQAADr0BR/uQrQAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
+        vAAADrwBlbxySQAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
         BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
         evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
         2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
diff --git a/LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs b/LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs
index 345dffd..cfbcc7f 100644
--- a/LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/CameraPage/CamerasEditPage.Designer.cs
@@ -132,8 +132,6 @@
             // 
             // CamerasEditPage
             // 
-            AutoScaleDimensions = new SizeF(96F, 96F);
-            AutoScaleMode = AutoScaleMode.Dpi;
             BackColor = Color.FromArgb(32, 41, 50);
             Controls.Add(tableLayoutPanel1);
             Name = "CamerasEditPage";
diff --git a/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs b/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs
index 0ec3433..ceb57b3 100644
--- a/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs
@@ -160,8 +160,7 @@
             // 
             // CreateCameraForm
             // 
-            AutoScaleDimensions = new SizeF(96F, 96F);
-            AutoScaleMode = AutoScaleMode.Dpi;
+            AutoScaleMode = AutoScaleMode.None;
             ClientSize = new Size(507, 309);
             ControlBox = false;
             Controls.Add(uiComboBoxSN);
diff --git a/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx b/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx
index 9ca1331..13b0351 100644
--- a/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx
+++ b/LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx
@@ -121,24 +121,24 @@
   <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
-        wgAADsIBFShKgAAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
-        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
-        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
-        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
-        NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P
-        mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT
-        f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h
-        0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL
-        GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K
-        Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b
-        jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F
-        HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw
-        sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37
-        EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ
-        7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+
-        2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1
-        hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA
-        SUVORK5CYII=
+        wAAADsABataJCQAAA+xJREFUWEftV0loFUkYbvcNFzJi0lWdBEPQruqXKEYdcRgz4AYqeplBwYiXEUVB
+        UHAhCEG8iR509OBlmIsOjJ5EBvQSRVHzuvslxjAy8eCG+75GozF+f716L6873fqe2ykffDR59e9/1V8V
+        ow99KARtUg72J5aypGNN8xy2yJPWcleylb5gS13HnJdy+KSW6uJx3b8ZA7TKl6PbMPq3SbMsBUcpyf/2
+        BP8PDh96kr32BX/rS/4O30789grfO1j/k4LQ6p8POO6XdFgpDNbDSZsn2Bt8u2MpWGdKsCPeBNMm3TZp
+        FaUc6/cW20pQEtpsflCllmwxjDbpLKOd9vAZuBPOx5J+86TyMdDbBxsdYLsn+SpUZYQy/imQILLdBIP3
+        cxzEU7Dbns3WejXmcNK/NPGHkajabtUiLYO/nyOgXWdRFeUkDmdnWMOg2ACFFwEn8fzfFeaSxlpjIOlT
+        EHC0HVm/CstSC13B93sVFaOVszDQpwGuYGtQLipnQDlMyLzH12t2zJ8adH/TbeMbVLYROmmyDvjYRrLK
+        aS4Q3Y/gtWjFALtg6KSf4NW02Uj3HwSPzOuw9iAk24sI/p5rm3OV0wyOo+++ww7pzCIViVjvAk+02GyC
+        VlWnpUmw2Qggn+AV0eZ/A61oEtYsOttRwjlE5vy4L61KrabQmjBtV3I/JPtRUptcmy9UBuiM+tLc+bHs
+        aQ1Rn8rNnEC7Gpvr8KcqF0XoHVCbl0qB8p2OEspS8OZmySZrvwqNtbUDMRm3Yj9kj1uB9NXcwLkfjwyu
+        RAhoshuYcHMyGy4DT5T+jKrcjNbJh+yW75QIw62yqhDAvUghwV/Cybrw5UKTDn08GqmTJ9GCx660pscG
+        oPoq2MHzlUWjtN8skjZbRsGFdQpiJoBkVVkFnF3tLcCv+7ZZo31mcYZGLY5RL/kCiQrcaRLFTvrikOxc
+        YJF2PeZ5ZsTmAkNkCtaiW1YAkcTF1sT4YjXFEM3ekMADz+YztM8AULqlqE5nSL5wor3Zkew51nxU4WnP
+        Ij9DlVGLIWCtDhV6FzBWIJH9a3pNaZOGQRsNT6tjWSHB/6LK6OUA/ETJVER/O9dgwcQ7w7XLTG0yjSTO
+        Onp7Ny3A92VuuTD0rbcFbXsUMJonaQwnBV8Rniu4y2sGYbEe5emA8cORV6ZGY3n5UNycC9AKvBHZZRh+
+        iqxoX9BlRWMZozvLLiSEV5V6HT2Bjz9iX0ftaAWE9sDoBV+UlOufY9FeWTmE5OhdgLH8Kxyvhv5GON3q
+        C3NzSvD19C70MTco4JTDZsbtrSzUlLP5DnBV3D745riOp5nr8F/OJcYV65++P2iTfNV/MPoQCcP4AKXR
+        FGYxo/VGAAAAAElFTkSuQmCC
 </value>
   </data>
 </root>
\ No newline at end of file
diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.Designer.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.Designer.cs
index afc3cce..217409e 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.Designer.cs
@@ -13,6 +13,7 @@
         /// <param name="disposing">濡傛灉搴旈噴鏀炬墭绠¤祫婧愶紝涓� true锛涘惁鍒欎负 false銆�</param>
         protected override void Dispose(bool disposing)
         {
+            this.isClosed = true;
             if (disposing && (components != null))
             {
                 components.Dispose();
diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
index b9febc4..1642a11 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -43,6 +43,11 @@
 
             if (ProcessRunBll != null)
                 this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
+            this.isClosed = false ;
+            var TaskPhotoContinue = Task.Factory.StartNew(() =>
+            {
+                ThreadCircleRun();
+            });
         }
 
         public void SetTitle(string title)
@@ -149,37 +154,36 @@
 
                 if (isCircleRuning)
                 {
-                    threadCircleRun = new Thread(ThreadCircleRun);
-                    threadCircleRun.IsBackground = true;
-                    threadCircleRun.Start();
+                    this.mAutoResetEvent.Set();
                 }
                 else
                 {
                     isCircleRuning = false;
-                    threadCircleRun.Abort();
                 }
+                if (!isCircleRuning)
+                {
+                    ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
+                    return;
+                }
+
+                ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
             }
             catch { }
         }
-
-        Thread threadCircleRun = null;
+        private AutoResetEvent mAutoResetEvent = new AutoResetEvent(false);
+        bool isClosed = false;
 
         void ThreadCircleRun()
         {
-            if (!isCircleRuning)
+            while (!isClosed)
             {
-                ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
-                return;
-            }
-
-            ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
-
-            while (isCircleRuning)
-            {
-                //this.BeginInvoke(new Action(() =>
-                //{
                 try
                 {
+                    if (isCircleRuning == false)
+                    {
+                        this.mAutoResetEvent.WaitOne();
+                    }
+
                     ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�濮嬭繍琛�", LogInfoType.WARN);
                     ClearObj();
                     bool result = ProcessRunBll.Run();
@@ -192,9 +196,7 @@
                         ShowHoImage(RecordImage);
                 }
                 catch { }
-                //}));
-
-                Thread.Sleep(100);
+                Thread.Sleep(33);
             }
         }
 
diff --git a/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs b/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs
index 1283684..4d4b002 100644
--- a/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs
+++ b/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs
@@ -36,6 +36,24 @@
             uiFlowLayoutPanel1 = new FlowLayoutPanel();
             tableLayoutPanel1 = new TableLayoutPanel();
             tableLayoutPanel2 = new TableLayoutPanel();
+            tableLayoutPanel3 = new TableLayoutPanel();
+            textBoxEmployeeID = new TextBox();
+            labelEmployeeID = new Label();
+            textBoxName = new TextBox();
+            labelName = new Label();
+            labelPermission = new Label();
+            textBoxPassword = new TextBox();
+            labelPassword = new Label();
+            labelUsername = new Label();
+            textBoxUsername = new TextBox();
+            comboBoxPermission = new ComboBox();
+            dataGridViewUM = new DataGridView();
+            tableLayoutPanel4 = new TableLayoutPanel();
+            btnEdit = new HopeButton();
+            btnFind = new HopeButton();
+            btnDel = new HopeButton();
+            btnAdd = new ForeverButton();
+            grpSetting.SuspendLayout();
             tableLayoutPanel1.SuspendLayout();
             tableLayoutPanel2.SuspendLayout();
             SuspendLayout();
@@ -101,37 +119,260 @@
             tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0);
             tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1);
             tableLayoutPanel1.Dock = DockStyle.Fill;
-            tableLayoutPanel1.Location = new Point(0, 0);
+            tableLayoutPanel1.Location = new Point(3, 22);
             tableLayoutPanel1.Name = "tableLayoutPanel1";
             tableLayoutPanel1.RowCount = 2;
             tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
-            tableLayoutPanel1.Size = new Size(607, 353);
-            tableLayoutPanel1.TabIndex = 13;
+            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
+            tableLayoutPanel1.Size = new Size(860, 555);
+            tableLayoutPanel1.TabIndex = 1;
             // 
             // tableLayoutPanel2
             // 
-            tableLayoutPanel2.ColumnCount = 6;
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
-            tableLayoutPanel2.Controls.Add(btn_Add, 5, 0);
-            tableLayoutPanel2.Controls.Add(btn_Clear, 4, 0);
+            tableLayoutPanel2.ColumnCount = 2;
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 340F));
+            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+            tableLayoutPanel2.Controls.Add(tableLayoutPanel3, 0, 0);
+            tableLayoutPanel2.Controls.Add(dataGridViewUM, 1, 0);
             tableLayoutPanel2.Dock = DockStyle.Fill;
             tableLayoutPanel2.Location = new Point(3, 306);
             tableLayoutPanel2.Name = "tableLayoutPanel2";
             tableLayoutPanel2.RowCount = 1;
             tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tableLayoutPanel2.Size = new Size(601, 44);
-            tableLayoutPanel2.TabIndex = 11;
+            tableLayoutPanel2.Size = new Size(854, 504);
+            tableLayoutPanel2.TabIndex = 0;
+            // 
+            // tableLayoutPanel3
+            // 
+            tableLayoutPanel3.ColumnCount = 2;
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
+            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
+            tableLayoutPanel3.Controls.Add(textBoxEmployeeID, 1, 4);
+            tableLayoutPanel3.Controls.Add(labelEmployeeID, 0, 4);
+            tableLayoutPanel3.Controls.Add(textBoxName, 1, 3);
+            tableLayoutPanel3.Controls.Add(labelName, 0, 3);
+            tableLayoutPanel3.Controls.Add(labelPermission, 0, 2);
+            tableLayoutPanel3.Controls.Add(textBoxPassword, 1, 1);
+            tableLayoutPanel3.Controls.Add(labelPassword, 0, 1);
+            tableLayoutPanel3.Controls.Add(labelUsername, 0, 0);
+            tableLayoutPanel3.Controls.Add(textBoxUsername, 1, 0);
+            tableLayoutPanel3.Controls.Add(comboBoxPermission, 1, 2);
+            tableLayoutPanel3.Location = new Point(3, 3);
+            tableLayoutPanel3.Name = "tableLayoutPanel3";
+            tableLayoutPanel3.RowCount = 5;
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
+            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
+            tableLayoutPanel3.Size = new Size(333, 225);
+            tableLayoutPanel3.TabIndex = 0;
+            // 
+            // textBoxEmployeeID
+            // 
+            textBoxEmployeeID.Location = new Point(107, 187);
+            textBoxEmployeeID.Margin = new Padding(7);
+            textBoxEmployeeID.Name = "textBoxEmployeeID";
+            textBoxEmployeeID.Size = new Size(219, 26);
+            textBoxEmployeeID.TabIndex = 9;
+            // 
+            // labelEmployeeID
+            // 
+            labelEmployeeID.AutoSize = true;
+            labelEmployeeID.Dock = DockStyle.Fill;
+            labelEmployeeID.ForeColor = Color.White;
+            labelEmployeeID.Location = new Point(3, 180);
+            labelEmployeeID.Name = "labelEmployeeID";
+            labelEmployeeID.Size = new Size(94, 45);
+            labelEmployeeID.TabIndex = 8;
+            labelEmployeeID.Text = "鍛樺伐缂栧彿";
+            labelEmployeeID.TextAlign = ContentAlignment.MiddleLeft;
+            // 
+            // textBoxName
+            // 
+            textBoxName.Location = new Point(107, 142);
+            textBoxName.Margin = new Padding(7);
+            textBoxName.Name = "textBoxName";
+            textBoxName.Size = new Size(219, 26);
+            textBoxName.TabIndex = 7;
+            // 
+            // labelName
+            // 
+            labelName.AutoSize = true;
+            labelName.Dock = DockStyle.Fill;
+            labelName.ForeColor = Color.White;
+            labelName.Location = new Point(3, 135);
+            labelName.Name = "labelName";
+            labelName.Size = new Size(94, 45);
+            labelName.TabIndex = 6;
+            labelName.Text = "濮撳悕";
+            labelName.TextAlign = ContentAlignment.MiddleLeft;
+            // 
+            // labelPermission
+            // 
+            labelPermission.AutoSize = true;
+            labelPermission.Dock = DockStyle.Fill;
+            labelPermission.ForeColor = Color.White;
+            labelPermission.Location = new Point(3, 90);
+            labelPermission.Name = "labelPermission";
+            labelPermission.Size = new Size(94, 45);
+            labelPermission.TabIndex = 4;
+            labelPermission.Text = "鏉冮檺";
+            labelPermission.TextAlign = ContentAlignment.MiddleLeft;
+            // 
+            // textBoxPassword
+            // 
+            textBoxPassword.Location = new Point(107, 52);
+            textBoxPassword.Margin = new Padding(7);
+            textBoxPassword.Name = "textBoxPassword";
+            textBoxPassword.Size = new Size(219, 26);
+            textBoxPassword.TabIndex = 3;
+            // 
+            // labelPassword
+            // 
+            labelPassword.AutoSize = true;
+            labelPassword.Dock = DockStyle.Fill;
+            labelPassword.ForeColor = Color.White;
+            labelPassword.Location = new Point(3, 45);
+            labelPassword.Name = "labelPassword";
+            labelPassword.Size = new Size(94, 45);
+            labelPassword.TabIndex = 2;
+            labelPassword.Text = "瀵嗙爜";
+            labelPassword.TextAlign = ContentAlignment.MiddleLeft;
+            // 
+            // labelUsername
+            // 
+            labelUsername.AutoSize = true;
+            labelUsername.Dock = DockStyle.Fill;
+            labelUsername.ForeColor = Color.White;
+            labelUsername.Location = new Point(3, 0);
+            labelUsername.Name = "labelUsername";
+            labelUsername.Size = new Size(94, 45);
+            labelUsername.TabIndex = 0;
+            labelUsername.Text = "鐢ㄦ埛鍚�";
+            labelUsername.TextAlign = ContentAlignment.MiddleLeft;
+            // 
+            // textBoxUsername
+            // 
+            textBoxUsername.Location = new Point(107, 7);
+            textBoxUsername.Margin = new Padding(7);
+            textBoxUsername.Name = "textBoxUsername";
+            textBoxUsername.Size = new Size(219, 26);
+            textBoxUsername.TabIndex = 1;
+            // 
+            // comboBoxPermission
+            // 
+            comboBoxPermission.DropDownStyle = ComboBoxStyle.DropDownList;
+            comboBoxPermission.FormattingEnabled = true;
+            comboBoxPermission.Location = new Point(107, 97);
+            comboBoxPermission.Margin = new Padding(7);
+            comboBoxPermission.Name = "comboBoxPermission";
+            comboBoxPermission.Size = new Size(219, 24);
+            comboBoxPermission.TabIndex = 5;
+            // 
+            // dataGridViewUM
+            // 
+            dataGridViewUM.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewUM.Dock = DockStyle.Fill;
+            dataGridViewUM.Location = new Point(343, 3);
+            dataGridViewUM.Name = "dataGridViewUM";
+            dataGridViewUM.RowHeadersWidth = 51;
+            dataGridViewUM.Size = new Size(508, 498);
+            dataGridViewUM.TabIndex = 1;
+            // 
+            // tableLayoutPanel4
+            // 
+            tableLayoutPanel4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+            tableLayoutPanel4.ColumnCount = 4;
+            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
+            tableLayoutPanel4.Controls.Add(btnEdit, 1, 0);
+            tableLayoutPanel4.Controls.Add(btnFind, 0, 0);
+            tableLayoutPanel4.Controls.Add(btnDel, 3, 0);
+            tableLayoutPanel4.Controls.Add(btnAdd, 2, 0);
+            tableLayoutPanel4.Location = new Point(457, 513);
+            tableLayoutPanel4.Name = "tableLayoutPanel4";
+            tableLayoutPanel4.RowCount = 1;
+            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
+            tableLayoutPanel4.Size = new Size(400, 39);
+            tableLayoutPanel4.TabIndex = 1;
+            // 
+            // btnEdit
+            // 
+            btnEdit.BorderColor = Color.FromArgb(220, 223, 230);
+            btnEdit.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
+            btnEdit.DangerColor = Color.FromArgb(245, 108, 108);
+            btnEdit.DefaultColor = Color.FromArgb(255, 255, 255);
+            btnEdit.Font = new Font("Segoe UI", 12F);
+            btnEdit.HoverTextColor = Color.FromArgb(48, 49, 51);
+            btnEdit.InfoColor = Color.FromArgb(144, 147, 153);
+            btnEdit.Location = new Point(103, 3);
+            btnEdit.Name = "btnEdit";
+            btnEdit.PrimaryColor = Color.FromArgb(64, 158, 255);
+            btnEdit.Size = new Size(94, 33);
+            btnEdit.SuccessColor = Color.FromArgb(103, 194, 58);
+            btnEdit.TabIndex = 2;
+            btnEdit.Text = "淇敼";
+            btnEdit.TextColor = Color.White;
+            btnEdit.WarningColor = Color.FromArgb(230, 162, 60);
+            // 
+            // btnFind
+            // 
+            btnFind.BorderColor = Color.FromArgb(220, 223, 230);
+            btnFind.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
+            btnFind.DangerColor = Color.FromArgb(245, 108, 108);
+            btnFind.DefaultColor = Color.FromArgb(255, 255, 255);
+            btnFind.Font = new Font("Segoe UI", 12F);
+            btnFind.HoverTextColor = Color.FromArgb(48, 49, 51);
+            btnFind.InfoColor = Color.FromArgb(144, 147, 153);
+            btnFind.Location = new Point(3, 3);
+            btnFind.Name = "btnFind";
+            btnFind.PrimaryColor = Color.FromArgb(64, 158, 255);
+            btnFind.Size = new Size(94, 33);
+            btnFind.SuccessColor = Color.FromArgb(103, 194, 58);
+            btnFind.TabIndex = 1;
+            btnFind.Text = "鏌ヨ";
+            btnFind.TextColor = Color.White;
+            btnFind.WarningColor = Color.FromArgb(230, 162, 60);
+            // 
+            // btnDel
+            // 
+            btnDel.BorderColor = Color.FromArgb(220, 223, 230);
+            btnDel.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
+            btnDel.DangerColor = Color.FromArgb(245, 108, 108);
+            btnDel.DefaultColor = Color.FromArgb(255, 255, 255);
+            btnDel.Font = new Font("Segoe UI", 12F);
+            btnDel.HoverTextColor = Color.FromArgb(48, 49, 51);
+            btnDel.InfoColor = Color.FromArgb(144, 147, 153);
+            btnDel.Location = new Point(303, 3);
+            btnDel.Name = "btnDel";
+            btnDel.PrimaryColor = Color.FromArgb(64, 158, 255);
+            btnDel.Size = new Size(94, 33);
+            btnDel.SuccessColor = Color.FromArgb(103, 194, 58);
+            btnDel.TabIndex = 3;
+            btnDel.Text = "鍒犻櫎";
+            btnDel.TextColor = Color.White;
+            btnDel.WarningColor = Color.FromArgb(230, 162, 60);
+            btnDel.Click += btnDel_Click;
+            // 
+            // btnAdd
+            // 
+            btnAdd.BackColor = Color.Transparent;
+            btnAdd.BaseColor = Color.FromArgb(35, 168, 109);
+            btnAdd.Font = new Font("Segoe UI", 12F);
+            btnAdd.Location = new Point(203, 3);
+            btnAdd.Name = "btnAdd";
+            btnAdd.Rounded = false;
+            btnAdd.Size = new Size(94, 33);
+            btnAdd.TabIndex = 4;
+            btnAdd.Text = "娣诲姞";
+            btnAdd.TextColor = Color.FromArgb(243, 243, 243);
+            btnAdd.Click += btnAdd_Click;
             // 
             // UserManagementEditPage
             // 
-            AutoScaleDimensions = new SizeF(96F, 96F);
-            AutoScaleMode = AutoScaleMode.Dpi;
             BackColor = Color.FromArgb(32, 41, 50);
             Controls.Add(tableLayoutPanel1);
             ForeColor = SystemColors.Control;
diff --git a/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs b/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs
index 2df8923..5bcb882 100644
--- a/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs
+++ b/LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs
@@ -14,9 +14,7 @@
 
         public UserManagementEditPage()
         {
-            InitializeComponent();
-
-            Name = "UserManagementEditPage";
+            Name = "UserManagementEditPage"; 
             Text = "鐢ㄦ埛绠$悊璁剧疆";
         }
 
diff --git a/LB_SmartVision/ProcessRun/ProcessContext.cs b/LB_SmartVision/ProcessRun/ProcessContext.cs
index 6f32ad5..4081006 100644
--- a/LB_SmartVision/ProcessRun/ProcessContext.cs
+++ b/LB_SmartVision/ProcessRun/ProcessContext.cs
@@ -9,6 +9,7 @@
 using LB_VisionProcesses.Processes.ScriptTool;
 using OpenCvSharp;
 using System.Collections.Concurrent;
+using System.Windows.Media.Media3D;
 
 namespace LB_SmartVision.ProcessRun
 {
@@ -489,7 +490,37 @@
                 if (dicContext.TryGetValue(ProcessName, out IProcess obj)
                     && obj is IProcess process)
                 {
-                    process.InputImage = null;
+                    //process.InputImage = null;
+
+                    if (process.InputImage != null)
+                    {
+                        if (process.InputImage is HObject)
+                            ((HObject)process.InputImage).Dispose();
+                        else if (process.InputImage is Mat)
+                            ((Mat)process.InputImage).Dispose();
+                        else if (process.InputImage is Bitmap)
+                            ((Bitmap)process.InputImage).Dispose();
+
+                        process.InputImage = null;
+                    }
+
+                    if (process.OutputImage != null)
+                    {
+                        if (process.OutputImage is HObject)
+                            ((HObject)process.OutputImage).Dispose();
+                        else if (process.OutputImage is Mat)
+                            ((Mat)process.OutputImage).Dispose();
+                        else if (process.OutputImage is Bitmap)
+                            ((Bitmap)process.OutputImage).Dispose();
+
+                        process.OutputImage = null;
+                    }
+
+                    if (process.Record != null)
+                    {
+                        process.Record.Dispose();
+                        process.Record = null;
+                    }
                     UpdateInputs(process);
 
                     // 涓嶅悓鑺傜偣璺宠繃鐨勬柟寮忎笉鍚�
diff --git a/LB_SmartVision/ProcessRun/ProcessRunBll.cs b/LB_SmartVision/ProcessRun/ProcessRunBll.cs
index ddd7a6c..d2ba837 100644
--- a/LB_SmartVision/ProcessRun/ProcessRunBll.cs
+++ b/LB_SmartVision/ProcessRun/ProcessRunBll.cs
@@ -24,6 +24,7 @@
 
         public static string Node2ToolClassName(string NodeName)
         {
+
             foreach (var item in IProcess.dicProcesses)
             {
                 if (NodeName.StartsWith(item.Key))
diff --git a/LB_SmartVision/VisionForm.Designer.cs b/LB_SmartVision/VisionForm.Designer.cs
index d5f88d2..bfbf818 100644
--- a/LB_SmartVision/VisionForm.Designer.cs
+++ b/LB_SmartVision/VisionForm.Designer.cs
@@ -61,13 +61,11 @@
             theme_VisionForm.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
             theme_VisionForm.Image = (Image)resources.GetObject("theme_VisionForm.Image");
             theme_VisionForm.Location = new Point(0, 0);
-            theme_VisionForm.Margin = new Padding(4);
             theme_VisionForm.Name = "theme_VisionForm";
-            theme_VisionForm.Padding = new Padding(12, 88, 12, 11);
+            theme_VisionForm.Padding = new Padding(10, 70, 10, 9);
             theme_VisionForm.RoundCorners = true;
             theme_VisionForm.Sizable = true;
-            theme_VisionForm.Size = new Size(1800, 1200);
-            theme_VisionForm.Size = new Size(1440, 880);
+            theme_VisionForm.Size = new Size(1152, 704);
             theme_VisionForm.SmartBounds = true;
             theme_VisionForm.StartPosition = FormStartPosition.WindowsDefaultLocation;
             theme_VisionForm.TabIndex = 0;
@@ -76,8 +74,6 @@
             // sc_VisionForm
             // 
             sc_VisionForm.Dock = DockStyle.Fill;
-            sc_VisionForm.Location = new Point(12, 88);
-            sc_VisionForm.Margin = new Padding(4);
             sc_VisionForm.FixedPanel = FixedPanel.Panel2;
             sc_VisionForm.Location = new Point(10, 70);
             sc_VisionForm.Name = "sc_VisionForm";
@@ -90,26 +86,12 @@
             // sc_VisionForm.Panel2
             // 
             sc_VisionForm.Panel2.Controls.Add(grb_Info);
-            sc_VisionForm.Size = new Size(1776, 1101);
-            sc_VisionForm.SplitterDistance = 873;
-            sc_VisionForm.SplitterWidth = 5;
-            sc_VisionForm.Size = new Size(1420, 801);
-            sc_VisionForm.SplitterDistance = 618;
+            sc_VisionForm.Size = new Size(1132, 625);
+            sc_VisionForm.SplitterDistance = 478;
             sc_VisionForm.TabIndex = 1;
             // 
             // tlp_MainView
             // 
-            sc_VisionMainViewer.Dock = DockStyle.Fill;
-            sc_VisionMainViewer.Location = new Point(0, 0);
-            sc_VisionMainViewer.Margin = new Padding(4);
-            sc_VisionMainViewer.Name = "sc_VisionMainViewer";
-            sc_VisionMainViewer.Orientation = Orientation.Horizontal;
-            // 
-            // sc_VisionMainViewer.Panel1
-            // 
-            sc_VisionMainViewer.Panel1.Controls.Add(tlp_VisionMainForm);
-            // 
-            // sc_VisionMainViewer.Panel2
             tlp_MainView.ColumnCount = 1;
             tlp_MainView.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
             tlp_MainView.Controls.Add(materialTabControl, 0, 2);
@@ -117,12 +99,13 @@
             tlp_MainView.Controls.Add(materialTabSelector, 0, 0);
             tlp_MainView.Dock = DockStyle.Fill;
             tlp_MainView.Location = new Point(0, 0);
+            tlp_MainView.Margin = new Padding(2);
             tlp_MainView.Name = "tlp_MainView";
             tlp_MainView.RowCount = 3;
-            tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 60F));
-            tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 39F));
+            tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 48F));
+            tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Absolute, 31F));
             tlp_MainView.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tlp_MainView.Size = new Size(1420, 618);
+            tlp_MainView.Size = new Size(1132, 478);
             tlp_MainView.TabIndex = 1;
             tlp_MainView.TagString = null;
             // 
@@ -136,11 +119,12 @@
             materialTabControl.AccessibleRole = AccessibleRole.Sound;
             materialTabControl.Depth = 0;
             materialTabControl.Dock = DockStyle.Fill;
-            materialTabControl.Location = new Point(3, 102);
+            materialTabControl.Location = new Point(2, 81);
+            materialTabControl.Margin = new Padding(2);
             materialTabControl.MouseState = MaterialSkin.MouseState.HOVER;
             materialTabControl.Name = "materialTabControl";
             materialTabControl.SelectedIndex = 0;
-            materialTabControl.Size = new Size(1414, 513);
+            materialTabControl.Size = new Size(1128, 395);
             materialTabControl.TabIndex = 0;
             // 
             // tlp_VisionMainOperator
@@ -161,13 +145,11 @@
             tlp_VisionMainOperator.Controls.Add(btn_GlobalVar, 7, 0);
             tlp_VisionMainOperator.Controls.Add(com_ProductName, 8, 0);
             tlp_VisionMainOperator.Dock = DockStyle.Fill;
-            tlp_VisionMainOperator.Location = new Point(4, 80);
-            tlp_VisionMainOperator.Margin = new Padding(4);
-            tlp_VisionMainOperator.Location = new Point(3, 63);
+            tlp_VisionMainOperator.Location = new Point(3, 51);
             tlp_VisionMainOperator.Name = "tlp_VisionMainOperator";
             tlp_VisionMainOperator.RowCount = 1;
             tlp_VisionMainOperator.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
-            tlp_VisionMainOperator.Size = new Size(1768, 41);
+            tlp_VisionMainOperator.Size = new Size(1126, 25);
             tlp_VisionMainOperator.TabIndex = 0;
             tlp_VisionMainOperator.TagString = null;
             // 
@@ -176,11 +158,10 @@
             ckb_AllowRun.Dock = DockStyle.Fill;
             ckb_AllowRun.Font = new Font("瀹嬩綋", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
             ckb_AllowRun.ForeColor = SystemColors.Control;
-            ckb_AllowRun.Location = new Point(4, 4);
-            ckb_AllowRun.Margin = new Padding(4);
+            ckb_AllowRun.Location = new Point(3, 3);
             ckb_AllowRun.MinimumSize = new Size(1, 1);
             ckb_AllowRun.Name = "ckb_AllowRun";
-            ckb_AllowRun.Size = new Size(188, 33);
+            ckb_AllowRun.Size = new Size(119, 19);
             ckb_AllowRun.TabIndex = 2;
             ckb_AllowRun.Text = "杩愯妯″紡";
             // 
@@ -195,12 +176,11 @@
             btn_Login.Image = null;
             btn_Login.ImageAlign = ContentAlignment.MiddleLeft;
             btn_Login.InactiveColor = Color.FromArgb(32, 34, 37);
-            btn_Login.Location = new Point(200, 4);
-            btn_Login.Margin = new Padding(4);
+            btn_Login.Location = new Point(128, 3);
             btn_Login.Name = "btn_Login";
             btn_Login.PressedBorderColor = Color.FromArgb(165, 37, 37);
             btn_Login.PressedColor = Color.FromArgb(165, 37, 37);
-            btn_Login.Size = new Size(188, 33);
+            btn_Login.Size = new Size(119, 19);
             btn_Login.TabIndex = 3;
             btn_Login.Text = "鐢ㄦ埛鐧诲綍";
             btn_Login.TextAlignment = StringAlignment.Center;
@@ -217,12 +197,11 @@
             btn_GlobalVar.Image = null;
             btn_GlobalVar.ImageAlign = ContentAlignment.MiddleLeft;
             btn_GlobalVar.InactiveColor = Color.FromArgb(32, 34, 37);
-            btn_GlobalVar.Location = new Point(1376, 4);
-            btn_GlobalVar.Margin = new Padding(4);
+            btn_GlobalVar.Location = new Point(878, 3);
             btn_GlobalVar.Name = "btn_GlobalVar";
             btn_GlobalVar.PressedBorderColor = Color.FromArgb(165, 37, 37);
             btn_GlobalVar.PressedColor = Color.FromArgb(165, 37, 37);
-            btn_GlobalVar.Size = new Size(188, 33);
+            btn_GlobalVar.Size = new Size(119, 19);
             btn_GlobalVar.TabIndex = 4;
             btn_GlobalVar.Text = "鍏ㄥ眬鍙橀噺";
             btn_GlobalVar.TextAlignment = StringAlignment.Center;
@@ -236,10 +215,9 @@
             com_ProductName.EnabledCalc = true;
             com_ProductName.FormattingEnabled = true;
             com_ProductName.ItemHeight = 20;
-            com_ProductName.Location = new Point(1572, 4);
-            com_ProductName.Margin = new Padding(4);
+            com_ProductName.Location = new Point(1003, 3);
             com_ProductName.Name = "com_ProductName";
-            com_ProductName.Size = new Size(192, 26);
+            com_ProductName.Size = new Size(120, 26);
             com_ProductName.TabIndex = 5;
             com_ProductName.SelectedValueChanged += com_ProductName_SelectedValueChanged;
             // 
@@ -248,12 +226,10 @@
             materialTabSelector.BaseTabControl = null;
             materialTabSelector.Depth = 0;
             materialTabSelector.Dock = DockStyle.Fill;
-            materialTabSelector.Location = new Point(4, 4);
-            materialTabSelector.Margin = new Padding(4);
+            materialTabSelector.Location = new Point(3, 3);
             materialTabSelector.MouseState = MaterialSkin.MouseState.HOVER;
             materialTabSelector.Name = "materialTabSelector";
-            materialTabSelector.Size = new Size(1768, 68);
-            materialTabSelector.Size = new Size(1414, 54);
+            materialTabSelector.Size = new Size(1126, 42);
             materialTabSelector.TabIndex = 1;
             // 
             // grb_Info
@@ -264,13 +240,11 @@
             grb_Info.Font = new Font("瀹嬩綋", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
             grb_Info.ForeColor = SystemColors.Control;
             grb_Info.Location = new Point(0, 0);
-            grb_Info.Margin = new Padding(5, 6, 5, 6);
+            grb_Info.Margin = new Padding(4, 5, 4, 5);
             grb_Info.MinimumSize = new Size(1, 1);
             grb_Info.Name = "grb_Info";
-            grb_Info.Padding = new Padding(0, 40, 0, 0);
-            grb_Info.Size = new Size(1776, 223);
             grb_Info.Padding = new Padding(0, 32, 0, 0);
-            grb_Info.Size = new Size(1420, 179);
+            grb_Info.Size = new Size(1132, 143);
             grb_Info.TabIndex = 1;
             grb_Info.Text = "鏃ュ織鏄剧ず鍖猴細";
             grb_Info.TextAlignment = ContentAlignment.MiddleLeft;
@@ -280,14 +254,13 @@
             rich_Info.Dock = DockStyle.Fill;
             rich_Info.FillColor = Color.FromArgb(32, 41, 50);
             rich_Info.Font = new Font("瀹嬩綋", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
-            rich_Info.Location = new Point(0, 40);
+            rich_Info.Location = new Point(0, 32);
             rich_Info.Margin = new Padding(4, 5, 4, 5);
             rich_Info.MinimumSize = new Size(1, 1);
             rich_Info.Name = "rich_Info";
             rich_Info.Padding = new Padding(2);
             rich_Info.ShowText = false;
-            rich_Info.Size = new Size(1776, 183);
-            rich_Info.Size = new Size(1420, 147);
+            rich_Info.Size = new Size(1132, 111);
             rich_Info.TabIndex = 0;
             rich_Info.TextAlignment = ContentAlignment.MiddleLeft;
             // 
@@ -301,9 +274,7 @@
             cb_VisionForm.EnableMaximizeButton = true;
             cb_VisionForm.EnableMinimizeButton = true;
             cb_VisionForm.ForeColor = Color.FromArgb(155, 155, 155);
-            cb_VisionForm.Location = new Point(1675, 18);
-            cb_VisionForm.Margin = new Padding(4);
-            cb_VisionForm.Location = new Point(1360, 14);
+            cb_VisionForm.Location = new Point(1052, 18);
             cb_VisionForm.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
             cb_VisionForm.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
             cb_VisionForm.Name = "cb_VisionForm";
@@ -313,15 +284,13 @@
             // 
             // VisionForm
             // 
-            AutoScaleDimensions = new SizeF(120F, 120F);
+            AutoScaleDimensions = new SizeF(96F, 96F);
             AutoScaleMode = AutoScaleMode.Dpi;
-            ClientSize = new Size(1800, 1200);
-            ClientSize = new Size(1440, 880);
+            ClientSize = new Size(1152, 704);
             Controls.Add(theme_VisionForm);
             FormBorderStyle = FormBorderStyle.None;
             Icon = (Icon)resources.GetObject("$this.Icon");
-            Margin = new Padding(4);
-            MinimumSize = new Size(326, 76);
+            MinimumSize = new Size(261, 61);
             Name = "VisionForm";
             Text = "杞儙澶栬瑙嗚妫�娴嬬郴缁�";
             TransparencyKey = Color.Fuchsia;
diff --git a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
index 8e76cd9..2c7a2c6 100644
--- a/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
+++ b/LB_VisionProcesses/Alogrithms/BaseAlgorithm/TAlgorithm.cs
@@ -304,7 +304,16 @@
             Result = true;
             bCompleted = false;
             Msg = "";
-            OutputImage = null;
+            if (OutputImage != null)
+            {
+                if (OutputImage is HObject)
+                    ((HObject)OutputImage).Dispose();
+                else if (OutputImage is Mat)
+                    ((Mat)OutputImage).Dispose();
+                else if (OutputImage is Bitmap)
+                    ((Bitmap)OutputImage).Dispose();
+                OutputImage = null;
+            }
 
             if (Record != null)
                 Record.Dispose();
diff --git a/LB_VisionProcesses/Cameras/CameraConfig.cs b/LB_VisionProcesses/Cameras/CameraConfig.cs
index 8210a2e..4bec6f7 100644
--- a/LB_VisionProcesses/Cameras/CameraConfig.cs
+++ b/LB_VisionProcesses/Cameras/CameraConfig.cs
@@ -1,7 +1,9 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing HalconDotNet;
+using Newtonsoft.Json;
 using Newtonsoft.Json.Serialization;
 using OpenCvSharp;
 using OpenCvSharp.Extensions;
+using System;
 using System.Collections.Concurrent;
 using System.Diagnostics;
 using System.Text;
@@ -302,21 +304,47 @@
             Msg = "";
             if (OutputImage != null)
             {
-                if (OutputImage is Bitmap)
-                {
+                if (OutputImage is HObject)
+                    ((HObject)OutputImage).Dispose();
+                else if (OutputImage is Mat)
+                    ((Mat)OutputImage).Dispose();
+                else if (OutputImage is Bitmap)
                     ((Bitmap)OutputImage).Dispose();
-                }
+
                 OutputImage = null;
             }
             if (Record != null)
             {
                 Record.Dispose();
+                Record = null;
             }
         }
 
         public override void Dispose()
         {
+            if (InputImage != null)
+            {
+                if (InputImage is HObject)
+                    ((HObject)InputImage).Dispose();
+                else if (InputImage is Mat)
+                    ((Mat)InputImage).Dispose();
+                else if (InputImage is Bitmap)
+                    ((Bitmap)InputImage).Dispose();
 
+                InputImage = null;
+            }
+
+            if (OutputImage != null)
+            {
+                if (OutputImage is HObject)
+                    ((HObject)OutputImage).Dispose();
+                else if (OutputImage is Mat)
+                    ((Mat)OutputImage).Dispose();
+                else if (OutputImage is Bitmap)
+                    ((Bitmap)OutputImage).Dispose();
+
+                OutputImage = null;
+            }
             return;
         }
 

--
Gitblit v1.9.3