|
@@ -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)
|
|
|
{
|