Quellcode durchsuchen

清除报告中未识别颗粒字样,增加导出原图拼接功能(导出原图拼接渲染功能没有完成)

zhangjiaxin vor 3 Jahren
Ursprung
Commit
d2c415d280

+ 72 - 3
OTSIncAReportApp/1-UI/Control_Graph/Controls/Control_DrawDistrbutionImageAndBSE.cs

@@ -20,6 +20,7 @@ using System.IO;
 using System.Linq;
 using System.Threading;
 using System.Windows.Forms;
+using System.Windows.Media.Imaging;
 using System.Xml;
 
 namespace OTSIncAReportGraph.Controls
@@ -1479,7 +1480,17 @@ namespace OTSIncAReportGraph.Controls
         //复制图像
         private void toolStripMenuItem_copyimage_Click(object sender, EventArgs e)
         {
-            CopyImage();
+            //outpic();
+            if (outpic())
+            {
+                MessageBox.Show("Picture export complete");
+            }
+            else
+            {
+                MessageBox.Show("Picture export failed");
+            }
+            
+            //CopyImage();
         }
 
         private void ToolStripMenuItem_movesempoint_Click(object sender, EventArgs e)
@@ -1919,14 +1930,14 @@ namespace OTSIncAReportGraph.Controls
         /// <returns></returns>
         private void GetPic(PaintEventArgs args)
         {
-
+            //outpic();
+            
             foreach (var f in m_list_allDfield)
             {
 
                 var curfldrec = f.Current_Rect;
                 if (curfldrec.Left > -1000 && curfldrec.Right < this.Width + 1000 && curfldrec.Top > -1000 && curfldrec.Bottom < this.Height + 1000)
                 {
-
                     args.Graphics.DrawImage(f.OriginalImage, f.Current_Rect.X, f.Current_Rect.Y, f.Current_Rect.Width, f.Current_Rect.Height);
                 }
             }
@@ -1936,6 +1947,64 @@ namespace OTSIncAReportGraph.Controls
         
         #endregion
 
+        private bool outpic()
+        {
+            SaveFileDialog sfd = new SaveFileDialog();
+            sfd.Filter = "BMP Files(*.bmp)|*.bmp|JPG Files(*.jpg)|*.jpg;*.jpeg|ALL Files(*.*)|*.*";
+            if (sfd.ShowDialog() == DialogResult.OK)
+            { 
+                try
+                {
+                    DataTable picDatat = new DataTable();
+                    picDatat.Columns.Add("X", typeof(double));
+                    picDatat.Columns.Add("Y", typeof(double));
+                    picDatat.Columns.Add("pic_ID");
+                    foreach (var f in m_list_allDfield)
+                    {
+                        DataRow dr = picDatat.NewRow();
+                        dr["X"] = f.Rect.X;
+                        dr["Y"] = f.Rect.Y;
+                        dr["pic_ID"] = f.FieldID;
+                        picDatat.Rows.Add(dr);
+                    }
+                    double x_max = Convert.ToDouble(picDatat.Compute("Max(X)", "true"));
+                    double y_max = Convert.ToDouble(picDatat.Compute("Max(Y)", "true"));
+                    Bitmap pic_bitmap = new Bitmap((int)x_max, (int)y_max);
+                    Graphics graph = Graphics.FromImage(pic_bitmap);
+                    foreach (var f in m_list_allDfield)
+                    {
+                        graph.DrawImage(f.OriginalImage, f.Rect.X, f.Rect.Y, f.Rect.Width, f.Rect.Height);
+                    }
+
+                    pic_bitmap.Save(sfd.FileName);
+                    pic_bitmap.Dispose();
+                    pic_bitmap.Dispose();
+                    return true;
+                }
+                catch
+                {
+                    return false;
+                }
+               
+            }
+            return false;
+
+        }
+        private static byte[] ImgtoByte(Image img)
+        {
+            MemoryStream ms = new MemoryStream();
+            byte[] imagedata = null;
+            img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
+            imagedata = ms.GetBuffer();
+            return imagedata;
+        }
+        private static Image BytesToImage(byte[] buffer)
+        {
+            MemoryStream ms = new MemoryStream(buffer);
+            Image image = System.Drawing.Image.FromStream(ms);
+            return image;
+        }
+
         #region Debug下执行的辅助测试代码
         private void Control_DrawDistrbutionImageAndBSE_MouseDoubleClick(object sender, MouseEventArgs e)
         {

+ 5 - 5
OTSIncAReportApp/1-UI/Control_Grids/CompositionDistributionGrid.cs

@@ -294,11 +294,11 @@ namespace OTSIncAReportGrids
                         }
                         gridView.Rows[add_rowindex].Cells[k].Style.BackColor = Color.Azure;
                     }
-                    else if (gridView.Columns[k].Name == "TypeName")
-                    {
-                        gridView.Rows[add_rowindex].Cells[k].Value = name;
-                        gridView.Rows[add_rowindex].Cells[k].Style.BackColor = Color.Azure;
-                    }
+                    //else if (gridView.Columns[k].Name == "TypeName")
+                    //{
+                    //    gridView.Rows[add_rowindex].Cells[k].Value = name;
+                    //    gridView.Rows[add_rowindex].Cells[k].Style.BackColor = Color.Azure;
+                    //}
                     else if (gridView.Columns[k].Name.ToLower() == "arearadio")
                     {
                         if (totalArea == 0)

+ 2 - 1
OTSIncAReportApp/1-UI/Control_Grids/ElementCompositionAvgGrid.cs

@@ -148,7 +148,8 @@ namespace OTSIncAReportGrids
                 string name = NameList[index];
                 double total = Convert.ToDouble(dt.Rows[i]["ar"]);
                 //double small = Convert.ToDouble(dt.Rows[i]["small"]);
-                Gview_gz.Rows[add_rowindex].Cells[1].Value = name;
+                Gview_gz.Rows[add_rowindex].Cells[1].Value = dt.Rows[i]["TypeName"];
+                //Gview_gz.Rows[add_rowindex].Cells[1].Value = name;
                 Gview_gz.Rows[add_rowindex].Cells[1].Style.BackColor = Color.Azure;
                 Gview_gz.Rows[add_rowindex].Cells[2].Value = Math.Round(total, 2);
                 Gview_gz.Rows[add_rowindex].Cells[2].Style.BackColor = Color.Azure;

+ 2 - 1
OTSIncAReportApp/1-UI/Control_Grids/ParticlesSizeGrid.cs

@@ -167,7 +167,8 @@ namespace OTSIncAReportGrids
                 }
                 
                 string name = NameList[index];
-                gridView.Rows[add_rowindex].Cells[1].Value = name;
+                //gridView.Rows[add_rowindex].Cells[1].Value = name;
+                gridView.Rows[add_rowindex].Cells[1].Value = dt.Rows[i]["TypeName"];
                 gridView.Rows[add_rowindex].Cells[1].Style.BackColor = Color.Azure;
                 string color = "#000000";
                 gridView.Rows[add_rowindex].Cells[2].Style.BackColor = DrawFunction.colorHx16toRGB(color);

+ 1 - 0
OTSIncAReportApp/OTSIncAReportApp.csproj

@@ -190,6 +190,7 @@
     <Reference Include="OTS.WinFormsUI.Docking">
       <HintPath>..\Bin\x64\Debug\OTS.WinFormsUI.Docking.dll</HintPath>
     </Reference>
+    <Reference Include="PresentationCore" />
     <Reference Include="RM.Interop.ReportMachine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c20d61f40d9b22e3, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <EmbedInteropTypes>True</EmbedInteropTypes>