From 1a77cdc38bd3d3c70678349dee571424faabe375 Mon Sep 17 00:00:00 2001 From: moco Date: Sun, 29 Dec 2024 18:44:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E6=B3=B3=E9=81=93=E5=88=86?= =?UTF-8?q?=E6=9E=90=20=20=20=E5=A2=9E=E5=8A=A0=E8=AF=BB=E5=8F=96tiff?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E7=9A=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PBAnaly/MainForm.cs | 106 +++-- src/PBAnaly/Module/LanesMannage.cs | 322 +++++++++++++ src/PBAnaly/PBAnaly.csproj | 34 ++ src/PBAnaly/UI/AnalyzeDataForm.Designer.cs | 18 +- .../UI/BioanayImagePaletteForm.Designer.cs | 339 ++++++++------ .../UI/LanesImagePaletteForm.Designer.cs | 114 +++++ src/PBAnaly/UI/LanesImagePaletteForm.cs | 25 ++ src/PBAnaly/UI/LanesImagePaletteForm.resx | 120 +++++ src/PBAnaly/UI/LanesImagePanel.Designer.cs | 425 ++++++++++++++++++ src/PBAnaly/UI/LanesImagePanel.cs | 274 +++++++++++ src/PBAnaly/UI/LanesImagePanel.resx | 123 +++++ src/PBAnaly/UI/MultiImageForm.Designer.cs | 225 ++++++++++ src/PBAnaly/UI/MultiImageForm.cs | 169 +++++++ src/PBAnaly/UI/MultiImageForm.resx | 120 +++++ 14 files changed, 2226 insertions(+), 188 deletions(-) create mode 100644 src/PBAnaly/Module/LanesMannage.cs create mode 100644 src/PBAnaly/UI/LanesImagePaletteForm.Designer.cs create mode 100644 src/PBAnaly/UI/LanesImagePaletteForm.cs create mode 100644 src/PBAnaly/UI/LanesImagePaletteForm.resx create mode 100644 src/PBAnaly/UI/LanesImagePanel.Designer.cs create mode 100644 src/PBAnaly/UI/LanesImagePanel.cs create mode 100644 src/PBAnaly/UI/LanesImagePanel.resx create mode 100644 src/PBAnaly/UI/MultiImageForm.Designer.cs create mode 100644 src/PBAnaly/UI/MultiImageForm.cs create mode 100644 src/PBAnaly/UI/MultiImageForm.resx diff --git a/src/PBAnaly/MainForm.cs b/src/PBAnaly/MainForm.cs index d79a595..1bb68be 100644 --- a/src/PBAnaly/MainForm.cs +++ b/src/PBAnaly/MainForm.cs @@ -42,7 +42,9 @@ namespace PBAnaly System.Windows.Forms.TableLayoutPanel tlp_main_images; private Dictionary bioanalysisMannages = new Dictionary(); + private Dictionary lanesMannages = new Dictionary(); private List bioanalyName = new List(); + private List lanesName = new List(); bool isRun = false; private Thread thread; @@ -467,55 +469,99 @@ namespace PBAnaly private void materialButton_LoadData_Click(object sender, EventArgs e) { + // 加载泳道分析的图库 string selectedFilePath = ""; // 弹出选择图像的框 #region 打开图片 OpenFileDialog openFileDialog = new OpenFileDialog(); - openFileDialog.Filter = "TIF Files (*.tif)|*.tif|All files (*.*)|*.*"; // 设置文件筛选器 + openFileDialog.Filter = "TIF Files (*.tif)|*.tif|TIFF files (*.tiff)|*.tiff"; // 设置文件筛选器 openFileDialog.Title = "Select a TIF File"; // 设置对话框标题 if (openFileDialog.ShowDialog() == DialogResult.OK) { - // 获取选中的文件路径 + // 获取选中的文件路径 只传入目录 selectedFilePath = openFileDialog.FileName; - + + } #endregion - if (selectedFilePath != "") + if (selectedFilePath != "") { - // Save Log Information - Read_Write_Log read_Write_Log = new Read_Write_Log(); - string SaveLogFile = read_Write_Log.LogFile; + - List OldLog = new List(); - if (File.Exists(SaveLogFile)) + if (lanesMannages.TryGetValue(selectedFilePath, out var value)) { - OldLog = read_Write_Log.ReadCsv(SaveLogFile); + return; } - - string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"); - OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "加载数据", Description = "加载数据", Time = dateTime }); - - read_Write_Log.WriteCsv(SaveLogFile, OldLog); - - DataProcessForm frmEmbed = new DataProcessForm(materialSkinManager, selectedFilePath); - - if (frmEmbed != null) + if (lanesMannages.Count == 0) { - //frmEmbed.FormBorderStyle = FormBorderStyle.None; // 无边框 - frmEmbed.TopLevel = false; // 不是最顶层窗体 - DataProcess_panel.Controls.Add(frmEmbed); // 添加到 Panel中 - - FormGenerate_X = FormGenerate_X + 15; - FormGenerate_Y = FormGenerate_Y + 15; - - frmEmbed.Location = new System.Drawing.Point(FormGenerate_X, FormGenerate_Y); - frmEmbed.Show(); // 显示 - PBAnalyCommMannager.processForm = frmEmbed; + lanesName.Clear(); } + LanesMannage lanesMannage = new LanesMannage(selectedFilePath, pl_right, lanesMannages); + + if (lanesMannage.GetImagePanel == null) + { + lanesMannage = null; + return; + } + DataProcess_panel.Controls.Add(lanesMannage.GetImagePanel); + lanesMannage.GetImagePanel.BringToFront(); + lanesName.Add(selectedFilePath); + + + + } - + //string selectedFilePath = ""; + //// 弹出选择图像的框 + //#region 打开图片 + //OpenFileDialog openFileDialog = new OpenFileDialog(); + //openFileDialog.Filter = "TIF Files (*.tif)|*.tif|All files (*.*)|*.*"; // 设置文件筛选器 + //openFileDialog.Title = "Select a TIF File"; // 设置对话框标题 + + //if (openFileDialog.ShowDialog() == DialogResult.OK) + //{ + // // 获取选中的文件路径 + // selectedFilePath = openFileDialog.FileName; + + //} + + //#endregion + //if (selectedFilePath != "") + //{ + // // Save Log Information + // Read_Write_Log read_Write_Log = new Read_Write_Log(); + // string SaveLogFile = read_Write_Log.LogFile; + + // List OldLog = new List(); + // if (File.Exists(SaveLogFile)) + // { + // OldLog = read_Write_Log.ReadCsv(SaveLogFile); + // } + + // string dateTime = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"); + // OldLog.Add(new Log() { UserID = InnerUserID, ITEM = "加载数据", Description = "加载数据", Time = dateTime }); + + // read_Write_Log.WriteCsv(SaveLogFile, OldLog); + + // DataProcessForm frmEmbed = new DataProcessForm(materialSkinManager, selectedFilePath); + + // if (frmEmbed != null) + // { + // //frmEmbed.FormBorderStyle = FormBorderStyle.None; // 无边框 + // frmEmbed.TopLevel = false; // 不是最顶层窗体 + // DataProcess_panel.Controls.Add(frmEmbed); // 添加到 Panel中 + + // FormGenerate_X = FormGenerate_X + 15; + // FormGenerate_Y = FormGenerate_Y + 15; + + // frmEmbed.Location = new System.Drawing.Point(FormGenerate_X, FormGenerate_Y); + // frmEmbed.Show(); // 显示 + // PBAnalyCommMannager.processForm = frmEmbed; + // } + //} + } private void materialButton_setting_Click(object sender, EventArgs e) diff --git a/src/PBAnaly/Module/LanesMannage.cs b/src/PBAnaly/Module/LanesMannage.cs new file mode 100644 index 0000000..3c601aa --- /dev/null +++ b/src/PBAnaly/Module/LanesMannage.cs @@ -0,0 +1,322 @@ +using OpenCvSharp; +using PBAnaly.UI; +using PBBiologyVC; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.PixelFormats; +using Sunny.UI; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; +using static PBAnaly.Module.BioanalysisMannage; + +namespace PBAnaly.Module +{ + public class LanesMannage + { + #region 构造函数 + public struct band_infos + { + public float startX; // X作为筛选的必要条件 当鼠标进入x的范围就是进入某一个泳道,在根据y的范围判断是否在这个泳道里 + public float endX; + public float startY; + public float endY; + public List xdata; + public List ydata; + public Scalar color; + public int thick; + public _band_info _Info; + } + #endregion + #region 参数 + private string path { get; set; } + private string curImagePath; + + private Image image_L16; + private byte[] image_byte; + private byte[] image_8bit_byte; + private Image image_rgb_24 = null; + public bool IsActive { get; set; } // 当前窗口是否在活跃状态 用来判断是否需要操作 + public int ImageIndex { get; set; }// 图片加载进来的序号 + public int Arrangement { get; set; } // 0:代表单张图 1:代表是合并图图但不做处理 2:代表是合并图 并且为处理图 + private Dictionary lanesMannages; + private ReaLTaiizor.Controls.Panel pl_right; + private LanesImagePanel imagePanel = null; + private LanesImagePaletteForm imagePaletteForm = null; + private Thread algThread; + private bool isalgRun = false; + private bool isUpdateAlg = false; + private Queue queueAlgAttribute = new Queue(); + #endregion + + public LanesMannage(string _path, ReaLTaiizor.Controls.Panel _pl_right, Dictionary lanesMannages) + { + imagePanel = new LanesImagePanel(); + imagePanel.TopLevel = false; + imagePanel.Show(); + imagePanel.BringToFront(); + this.path = _path; + + var ret = ReadTiff(); // 读tif或者tiff + if (ret == false) + { + imagePanel.Dispose(); + imagePanel = null; + return ; + } + + isUpdateAlg = false; + this.pl_right = _pl_right; + + + imagePaletteForm = new LanesImagePaletteForm(); + imagePaletteForm.TopLevel = false; + imagePaletteForm.Dock = System.Windows.Forms.DockStyle.Fill; + this.pl_right.Controls.Add(imagePaletteForm); + imagePaletteForm.BringToFront(); + imagePaletteForm.Show(); + + Init(); + RefreshImage();// 初始化图像 + + isalgRun = true; + algThread = new Thread(new ThreadStart(AlgRun)); // 启动线程队列一直监听是否需要进行算法计算 + algThread.IsBackground = true; + algThread.Start(); + + isUpdateAlg = true;// 开始可以更新算法 + foreach (var item in lanesMannages) + { + if (item.Value.ImageIndex > ImageIndex) + { + ImageIndex = item.Value.ImageIndex; + } + } + ImageIndex++; + imagePanel.lb_imageIndex.Text = ImageIndex.ToString(); + lanesMannages[_path] = this; + this.lanesMannages = lanesMannages; + } + + + #region 方法 + + private void AlgRun() + { + while (isalgRun) + { + if (isUpdateAlg == false) continue; + band_infos? aatb = null; + if (queueAlgAttribute.Count > 1) + { + while (queueAlgAttribute.Count > 1) + { + queueAlgAttribute.Dequeue(); + } + } + if (queueAlgAttribute.Count > 0) + { + aatb = queueAlgAttribute.Dequeue(); + } + if (aatb != null) + { + ImageAlg((band_infos)aatb); + + } + Thread.Sleep(5); + } + } + + private void ImageAlg(band_infos aatb) + { + + } + + /// + /// 初始化控件 初始化配置 + /// + private void Init() + { + imagePanel.image_pl.MouseDown += Image_pl_MouseDown; + imagePanel.image_pl.DoubleClick += Image_pl_DoubleClick; + imagePanel.image_pl.MouseMove += Image_pl_MouseMove; + imagePanel.image_pl.MouseUp += Image_pl_MouseUp; + imagePanel.image_pl.Paint += Image_pl_Paint; + + + imagePanel.wdb_title.MouseDown += Wdb_title_Click; + imagePanel.FormClosing += ImagePanel_FormClosing; + imagePanel.FormClosed += ImagePanel_FormClosed; + + KeyboardListener.Register(OnKeyPressed); // 创建键盘钩子 + } + + + + private bool ReadTiff() + { + // 读tif 或 tiff + // 如果是tiff 需要弹出选择的一帧 + + var extension = Path.GetExtension(path).Trim(); + if (extension == ".tif") + { + curImagePath = path; + image_L16 = util.LoadTiffAsL16(curImagePath); + image_byte = util.ConvertL16ImageToByteArray(image_L16); + + } + else if (extension == ".tiff") + { + curImagePath = path; + MultiImageForm multiImageForm = new MultiImageForm(curImagePath); + if (multiImageForm.ShowDialog() == DialogResult.OK) + { + image_L16 = multiImageForm.curImage.Clone(); + image_byte = util.ConvertL16ImageToByteArray(image_L16); + multiImageForm.Dispose(); + multiImageForm = null; + } + else + { + return false; + } + } + else + { + return false; + } + + if (image_L16 == null) + { + MessageBox.Show("图片加载失败"); + return false; + } + + image_8bit_byte = new byte[image_L16.Width * image_L16.Height * 3]; + + for (int i = 0; i < image_L16.Width * image_L16.Height; i++) + { + // 获取16位图像数据中的当前像素值 + ushort pixel16bit = (ushort)(image_byte[i * 2] | (image_byte[i * 2 + 1] << 8)); + byte gray = (byte)((pixel16bit / 65535.0) * 255) ; + // 将R、G、B分量存储到RGB格式的数组中 + image_8bit_byte[i * 3] = gray; + image_8bit_byte[i * 3 + 1] = gray; + image_8bit_byte[i * 3 + 2] = gray; + } + + image_rgb_24 = util.ConvertByteArrayToRgb24Image(image_8bit_byte, image_L16.Width, image_L16.Height,3); + imagePanel.SetButtomLabel($"{image_L16.Width} x {image_L16.Height}"); + if (path.Length > 0) + { + var t = path.Split("\\"); + if (t.Length > 2) + { + imagePanel.SetButtomName($"{t[t.Length - 2]} {image_L16.Width} x {image_L16.Height}"); + } + + } + return true; + } + + private void RefreshImage() + { + if (imagePanel.image_pl.InvokeRequired) + { + imagePanel.image_pl.Invoke(new MethodInvoker(() => + { + RefreshImage(); + })); + + } + else + { + imagePanel.SetImage(image_rgb_24); + } + } + #endregion + + + #region 事件 + #region imagepanel + + private void Image_pl_Paint(object sender, PaintEventArgs e) + { + + } + + private void Image_pl_MouseUp(object sender, MouseEventArgs e) + { + + } + + private void Image_pl_MouseMove(object sender, MouseEventArgs e) + { + + } + + private void Image_pl_DoubleClick(object sender, EventArgs e) + { + + } + + private void Image_pl_MouseDown(object sender, MouseEventArgs e) + { + Wdb_title_Click(null, null); + } + private void ImagePanel_FormClosed(object sender, FormClosedEventArgs e) + { + this.lanesMannages[path] = null; + this.lanesMannages.Remove(path); + } + + private void ImagePanel_FormClosing(object sender, FormClosingEventArgs e) + { + if (this.imagePaletteForm != null) + { + KeyboardListener.Unregister(OnKeyPressed); + this.imagePaletteForm.Close(); + this.imagePaletteForm.Dispose(); + this.imagePaletteForm = null; + } + this.pl_right.Controls.Clear(); + } + + private void Wdb_title_Click(object sender, MouseEventArgs e) + { + if (Arrangement == 2 || Arrangement == 0) + { + this.pl_right.Controls.Clear(); + this.pl_right.Controls.Add(this.imagePaletteForm); + } + + foreach (var item in lanesMannages) + { + item.Value.IsActive = false; + } + IsActive = true; + this.imagePanel.BringToFront(); + } + #endregion + + private void OnKeyPressed(Keys key, bool ctrl, bool shift, bool alt) + { + + } + #endregion + #region 对外接口 + #region imagepanel + public LanesImagePanel GetImagePanel + { + get { return imagePanel; } + } + + #endregion + #endregion + } +} diff --git a/src/PBAnaly/PBAnaly.csproj b/src/PBAnaly/PBAnaly.csproj index edba48b..2221243 100644 --- a/src/PBAnaly/PBAnaly.csproj +++ b/src/PBAnaly/PBAnaly.csproj @@ -126,6 +126,7 @@ + @@ -149,6 +150,18 @@ AnalyzeDataForm.cs + + Form + + + LanesImagePaletteForm.cs + + + Form + + + LanesImagePanel.cs + Form @@ -173,6 +186,12 @@ LogForm.cs + + Form + + + MultiImageForm.cs + Component @@ -250,6 +269,12 @@ AnalyzeDataForm.cs + + LanesImagePaletteForm.cs + + + LanesImagePanel.cs + BioanalyImagePanel.cs @@ -262,6 +287,9 @@ LogForm.cs + + MultiImageForm.cs + RowMergeView.cs @@ -295,6 +323,12 @@ 24.10.0 + + 14.3.0 + + + 14.3.0 + 0.2.1 diff --git a/src/PBAnaly/UI/AnalyzeDataForm.Designer.cs b/src/PBAnaly/UI/AnalyzeDataForm.Designer.cs index 3ccbabe..0b138ea 100644 --- a/src/PBAnaly/UI/AnalyzeDataForm.Designer.cs +++ b/src/PBAnaly/UI/AnalyzeDataForm.Designer.cs @@ -104,7 +104,7 @@ this.metroPanel1.Location = new System.Drawing.Point(0, 31); this.metroPanel1.Margin = new System.Windows.Forms.Padding(0); this.metroPanel1.Name = "metroPanel1"; - this.metroPanel1.Size = new System.Drawing.Size(1510, 36); + this.metroPanel1.Size = new System.Drawing.Size(1577, 36); this.metroPanel1.Style = ReaLTaiizor.Enum.Metro.Style.Custom; this.metroPanel1.StyleManager = null; this.metroPanel1.TabIndex = 3; @@ -131,13 +131,13 @@ this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 2); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(4, 30); - this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 3; this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1510, 1379); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1577, 1169); this.tableLayoutPanel1.TabIndex = 3; // // panel1 @@ -148,10 +148,10 @@ this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.EdgeColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(41)))), ((int)(((byte)(50))))); this.panel1.Location = new System.Drawing.Point(4, 71); - this.panel1.Margin = new System.Windows.Forms.Padding(4); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.panel1.Name = "panel1"; this.panel1.Padding = new System.Windows.Forms.Padding(7, 6, 7, 6); - this.panel1.Size = new System.Drawing.Size(1502, 1304); + this.panel1.Size = new System.Drawing.Size(1569, 1094); this.panel1.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality; this.panel1.TabIndex = 4; this.panel1.Text = "panel1"; @@ -161,23 +161,23 @@ this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView1.Location = new System.Drawing.Point(7, 6); - this.dataGridView1.Margin = new System.Windows.Forms.Padding(4); + this.dataGridView1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowHeadersWidth = 51; this.dataGridView1.RowTemplate.Height = 23; - this.dataGridView1.Size = new System.Drawing.Size(1488, 1292); + this.dataGridView1.Size = new System.Drawing.Size(1555, 1082); this.dataGridView1.TabIndex = 0; // // AnalyzeDataForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1518, 1413); + this.ClientSize = new System.Drawing.Size(1585, 1203); this.Controls.Add(this.tableLayoutPanel1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.FormStyle = MaterialSkin.Controls.MaterialForm.FormStyles.ActionBar_None; this.MainMenuStrip = this.miniToolStrip; - this.Margin = new System.Windows.Forms.Padding(4); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "AnalyzeDataForm"; this.Padding = new System.Windows.Forms.Padding(4, 30, 4, 4); this.Text = "AnalyzeDataForm"; diff --git a/src/PBAnaly/UI/BioanayImagePaletteForm.Designer.cs b/src/PBAnaly/UI/BioanayImagePaletteForm.Designer.cs index d671d1d..7e7d975 100644 --- a/src/PBAnaly/UI/BioanayImagePaletteForm.Designer.cs +++ b/src/PBAnaly/UI/BioanayImagePaletteForm.Designer.cs @@ -56,6 +56,7 @@ this.collapseItem2 = new AntdUI.CollapseItem(); this.cb_colortable = new System.Windows.Forms.ComboBox(); this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.cb_sharpen = new AntdUI.Checkbox(); this.nud_opacity = new System.Windows.Forms.NumericUpDown(); this.nud_brightness = new System.Windows.Forms.NumericUpDown(); this.dtb_colorMax = new ReaLTaiizor.Controls.DungeonTrackBar(); @@ -80,7 +81,6 @@ this.foxLabel12 = new ReaLTaiizor.Controls.FoxLabel(); this.foxLabel15 = new ReaLTaiizor.Controls.FoxLabel(); this.ava_textbox = new AntdUI.Avatar(); - this.cb_sharpen = new AntdUI.Checkbox(); this.tableLayoutPanel3.SuspendLayout(); this.panel2.SuspendLayout(); this.panel3.SuspendLayout(); @@ -116,10 +116,11 @@ this.fb_fixSetting.EnabledCalc = true; this.fb_fixSetting.Font = new System.Drawing.Font("Segoe UI", 10F); this.fb_fixSetting.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(78)))), ((int)(((byte)(90))))); - this.fb_fixSetting.Location = new System.Drawing.Point(137, 31); + this.fb_fixSetting.Location = new System.Drawing.Point(183, 39); + this.fb_fixSetting.Margin = new System.Windows.Forms.Padding(4); this.fb_fixSetting.Name = "fb_fixSetting"; this.fb_fixSetting.OverColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); - this.fb_fixSetting.Size = new System.Drawing.Size(59, 31); + this.fb_fixSetting.Size = new System.Drawing.Size(79, 39); this.fb_fixSetting.TabIndex = 6; this.fb_fixSetting.Text = "修改"; // @@ -128,9 +129,10 @@ this.foxLabel7.BackColor = System.Drawing.Color.Transparent; this.foxLabel7.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel7.Location = new System.Drawing.Point(120, 5); + this.foxLabel7.Location = new System.Drawing.Point(160, 6); + this.foxLabel7.Margin = new System.Windows.Forms.Padding(4); this.foxLabel7.Name = "foxLabel7"; - this.foxLabel7.Size = new System.Drawing.Size(26, 19); + this.foxLabel7.Size = new System.Drawing.Size(35, 24); this.foxLabel7.TabIndex = 4; this.foxLabel7.Text = "r="; // @@ -139,9 +141,10 @@ this.foxLabel5.BackColor = System.Drawing.Color.Transparent; this.foxLabel5.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel5.Location = new System.Drawing.Point(3, 31); + this.foxLabel5.Location = new System.Drawing.Point(4, 39); + this.foxLabel5.Margin = new System.Windows.Forms.Padding(4); this.foxLabel5.Name = "foxLabel5"; - this.foxLabel5.Size = new System.Drawing.Size(26, 19); + this.foxLabel5.Size = new System.Drawing.Size(35, 24); this.foxLabel5.TabIndex = 2; this.foxLabel5.Text = "h="; // @@ -152,9 +155,10 @@ this.foxLabel8.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel8.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel8.Location = new System.Drawing.Point(3, 197); + this.foxLabel8.Location = new System.Drawing.Point(4, 246); + this.foxLabel8.Margin = new System.Windows.Forms.Padding(4); this.foxLabel8.Name = "foxLabel8"; - this.foxLabel8.Size = new System.Drawing.Size(198, 18); + this.foxLabel8.Size = new System.Drawing.Size(266, 22); this.foxLabel8.TabIndex = 34; this.foxLabel8.Text = "Color Rable"; // @@ -165,9 +169,10 @@ this.flb_act_mm.Dock = System.Windows.Forms.DockStyle.Fill; this.flb_act_mm.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.flb_act_mm.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.flb_act_mm.Location = new System.Drawing.Point(93, 173); + this.flb_act_mm.Location = new System.Drawing.Point(125, 216); + this.flb_act_mm.Margin = new System.Windows.Forms.Padding(4); this.flb_act_mm.Name = "flb_act_mm"; - this.flb_act_mm.Size = new System.Drawing.Size(164, 18); + this.flb_act_mm.Size = new System.Drawing.Size(220, 22); this.flb_act_mm.TabIndex = 30; this.flb_act_mm.Text = "0 mm"; // @@ -177,9 +182,10 @@ this.foxLabel9.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel9.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel9.Location = new System.Drawing.Point(3, 115); + this.foxLabel9.Location = new System.Drawing.Point(4, 143); + this.foxLabel9.Margin = new System.Windows.Forms.Padding(4); this.foxLabel9.Name = "foxLabel9"; - this.foxLabel9.Size = new System.Drawing.Size(44, 30); + this.foxLabel9.Size = new System.Drawing.Size(59, 37); this.foxLabel9.TabIndex = 18; this.foxLabel9.Text = "Max"; // @@ -189,9 +195,10 @@ this.foxLabel6.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel6.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel6.Location = new System.Drawing.Point(3, 79); + this.foxLabel6.Location = new System.Drawing.Point(4, 98); + this.foxLabel6.Margin = new System.Windows.Forms.Padding(4); this.foxLabel6.Name = "foxLabel6"; - this.foxLabel6.Size = new System.Drawing.Size(44, 30); + this.foxLabel6.Size = new System.Drawing.Size(59, 37); this.foxLabel6.TabIndex = 13; this.foxLabel6.Text = "Min"; // @@ -201,9 +208,10 @@ this.foxLabel2.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel2.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel2.Location = new System.Drawing.Point(3, 61); + this.foxLabel2.Location = new System.Drawing.Point(4, 76); + this.foxLabel2.Margin = new System.Windows.Forms.Padding(4); this.foxLabel2.Name = "foxLabel2"; - this.foxLabel2.Size = new System.Drawing.Size(44, 12); + this.foxLabel2.Size = new System.Drawing.Size(59, 14); this.foxLabel2.TabIndex = 10; this.foxLabel2.Text = "色阶"; // @@ -213,9 +221,10 @@ this.foxLabel3.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel3.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel3.Location = new System.Drawing.Point(3, 32); + this.foxLabel3.Location = new System.Drawing.Point(4, 40); + this.foxLabel3.Margin = new System.Windows.Forms.Padding(4); this.foxLabel3.Name = "foxLabel3"; - this.foxLabel3.Size = new System.Drawing.Size(44, 23); + this.foxLabel3.Size = new System.Drawing.Size(59, 28); this.foxLabel3.TabIndex = 6; this.foxLabel3.Text = "透明度::"; // @@ -225,9 +234,10 @@ this.foxLabel1.Dock = System.Windows.Forms.DockStyle.Fill; this.foxLabel1.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.foxLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel1.Location = new System.Drawing.Point(3, 3); + this.foxLabel1.Location = new System.Drawing.Point(4, 4); + this.foxLabel1.Margin = new System.Windows.Forms.Padding(4); this.foxLabel1.Name = "foxLabel1"; - this.foxLabel1.Size = new System.Drawing.Size(44, 23); + this.foxLabel1.Size = new System.Drawing.Size(59, 28); this.foxLabel1.TabIndex = 1; this.foxLabel1.Text = "亮度:"; // @@ -236,19 +246,20 @@ this.foxLabel4.BackColor = System.Drawing.Color.Transparent; this.foxLabel4.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel4.Location = new System.Drawing.Point(3, 3); + this.foxLabel4.Location = new System.Drawing.Point(4, 4); + this.foxLabel4.Margin = new System.Windows.Forms.Padding(4); this.foxLabel4.Name = "foxLabel4"; - this.foxLabel4.Size = new System.Drawing.Size(26, 19); + this.foxLabel4.Size = new System.Drawing.Size(35, 24); this.foxLabel4.TabIndex = 0; this.foxLabel4.Text = "w="; // // tableLayoutPanel3 // this.tableLayoutPanel3.ColumnCount = 5; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel3.Controls.Add(this.hpb_wand, 3, 0); this.tableLayoutPanel3.Controls.Add(this.hpb_xianduan, 2, 0); @@ -261,11 +272,11 @@ this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); this.tableLayoutPanel3.Name = "tableLayoutPanel3"; this.tableLayoutPanel3.RowCount = 3; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 34F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(268, 182); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(357, 228); this.tableLayoutPanel3.TabIndex = 0; // // hpb_wand @@ -273,9 +284,10 @@ this.hpb_wand.Dock = System.Windows.Forms.DockStyle.Fill; this.hpb_wand.Image = global::PBAnaly.Properties.Resources.魔术棒_魔法_魔术_一键; this.hpb_wand.ImageFit = AntdUI.TFit.Contain; - this.hpb_wand.Location = new System.Drawing.Point(105, 3); + this.hpb_wand.Location = new System.Drawing.Point(139, 4); + this.hpb_wand.Margin = new System.Windows.Forms.Padding(4); this.hpb_wand.Name = "hpb_wand"; - this.hpb_wand.Size = new System.Drawing.Size(28, 28); + this.hpb_wand.Size = new System.Drawing.Size(37, 34); this.hpb_wand.TabIndex = 14; this.hpb_wand.Text = "a"; // @@ -285,9 +297,10 @@ this.hpb_xianduan.Dock = System.Windows.Forms.DockStyle.Fill; this.hpb_xianduan.Image = global::PBAnaly.Properties.Resources.线段__1_; this.hpb_xianduan.ImageFit = AntdUI.TFit.Contain; - this.hpb_xianduan.Location = new System.Drawing.Point(71, 3); + this.hpb_xianduan.Location = new System.Drawing.Point(94, 4); + this.hpb_xianduan.Margin = new System.Windows.Forms.Padding(4); this.hpb_xianduan.Name = "hpb_xianduan"; - this.hpb_xianduan.Size = new System.Drawing.Size(28, 28); + this.hpb_xianduan.Size = new System.Drawing.Size(37, 34); this.hpb_xianduan.TabIndex = 13; this.hpb_xianduan.Text = "a"; // @@ -297,9 +310,10 @@ this.hpb_circe.Dock = System.Windows.Forms.DockStyle.Fill; this.hpb_circe.Image = global::PBAnaly.Properties.Resources.圆形; this.hpb_circe.ImageFit = AntdUI.TFit.Contain; - this.hpb_circe.Location = new System.Drawing.Point(37, 3); + this.hpb_circe.Location = new System.Drawing.Point(49, 4); + this.hpb_circe.Margin = new System.Windows.Forms.Padding(4); this.hpb_circe.Name = "hpb_circe"; - this.hpb_circe.Size = new System.Drawing.Size(28, 28); + this.hpb_circe.Size = new System.Drawing.Size(37, 34); this.hpb_circe.TabIndex = 0; this.hpb_circe.Text = "a"; // @@ -309,9 +323,10 @@ this.hpb_rect.Dock = System.Windows.Forms.DockStyle.Fill; this.hpb_rect.Image = global::PBAnaly.Properties.Resources._10矩形; this.hpb_rect.ImageFit = AntdUI.TFit.Contain; - this.hpb_rect.Location = new System.Drawing.Point(3, 3); + this.hpb_rect.Location = new System.Drawing.Point(4, 4); + this.hpb_rect.Margin = new System.Windows.Forms.Padding(4); this.hpb_rect.Name = "hpb_rect"; - this.hpb_rect.Size = new System.Drawing.Size(28, 28); + this.hpb_rect.Size = new System.Drawing.Size(37, 34); this.hpb_rect.TabIndex = 0; this.hpb_rect.Text = "a"; // @@ -329,9 +344,10 @@ this.panel2.Controls.Add(this.foxLabel5); this.panel2.Controls.Add(this.foxLabel4); this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(3, 37); + this.panel2.Location = new System.Drawing.Point(4, 46); + this.panel2.Margin = new System.Windows.Forms.Padding(4); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(262, 122); + this.panel2.Size = new System.Drawing.Size(349, 153); this.panel2.TabIndex = 14; this.panel2.Text = "panel2"; // @@ -346,9 +362,10 @@ this.dtb_th.ColorE = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.dtb_th.ColorF = System.Drawing.Color.Black; this.dtb_th.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.dtb_th.Location = new System.Drawing.Point(35, 74); + this.dtb_th.Location = new System.Drawing.Point(47, 92); + this.dtb_th.Margin = new System.Windows.Forms.Padding(4); this.dtb_th.Name = "dtb_th"; - this.dtb_th.Size = new System.Drawing.Size(80, 21); + this.dtb_th.Size = new System.Drawing.Size(106, 25); this.dtb_th.TabIndex = 12; this.dtb_th.Text = "100"; // @@ -357,9 +374,10 @@ this.foxLabel10.BackColor = System.Drawing.Color.Transparent; this.foxLabel10.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel10.Location = new System.Drawing.Point(3, 71); + this.foxLabel10.Location = new System.Drawing.Point(4, 89); + this.foxLabel10.Margin = new System.Windows.Forms.Padding(4); this.foxLabel10.Name = "foxLabel10"; - this.foxLabel10.Size = new System.Drawing.Size(26, 19); + this.foxLabel10.Size = new System.Drawing.Size(35, 24); this.foxLabel10.TabIndex = 11; this.foxLabel10.Text = "th="; // @@ -374,9 +392,10 @@ this.dtb_r.ColorE = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.dtb_r.ColorF = System.Drawing.Color.Black; this.dtb_r.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.dtb_r.Location = new System.Drawing.Point(144, 5); + this.dtb_r.Location = new System.Drawing.Point(192, 6); + this.dtb_r.Margin = new System.Windows.Forms.Padding(4); this.dtb_r.Name = "dtb_r"; - this.dtb_r.Size = new System.Drawing.Size(80, 21); + this.dtb_r.Size = new System.Drawing.Size(106, 25); this.dtb_r.TabIndex = 10; this.dtb_r.Text = "10"; // @@ -391,9 +410,10 @@ this.dtb_h.ColorE = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.dtb_h.ColorF = System.Drawing.Color.Black; this.dtb_h.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.dtb_h.Location = new System.Drawing.Point(35, 34); + this.dtb_h.Location = new System.Drawing.Point(47, 42); + this.dtb_h.Margin = new System.Windows.Forms.Padding(4); this.dtb_h.Name = "dtb_h"; - this.dtb_h.Size = new System.Drawing.Size(80, 21); + this.dtb_h.Size = new System.Drawing.Size(106, 25); this.dtb_h.TabIndex = 9; this.dtb_h.Text = "10"; // @@ -408,9 +428,10 @@ this.dtb_w.ColorE = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.dtb_w.ColorF = System.Drawing.Color.Black; this.dtb_w.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.dtb_w.Location = new System.Drawing.Point(34, 5); + this.dtb_w.Location = new System.Drawing.Point(45, 6); + this.dtb_w.Margin = new System.Windows.Forms.Padding(4); this.dtb_w.Name = "dtb_w"; - this.dtb_w.Size = new System.Drawing.Size(80, 21); + this.dtb_w.Size = new System.Drawing.Size(106, 25); this.dtb_w.TabIndex = 8; this.dtb_w.Text = "10"; // @@ -419,18 +440,20 @@ this.flb_info.BackColor = System.Drawing.Color.Transparent; this.flb_info.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.flb_info.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.flb_info.Location = new System.Drawing.Point(1, 101); + this.flb_info.Location = new System.Drawing.Point(1, 126); + this.flb_info.Margin = new System.Windows.Forms.Padding(4); this.flb_info.Name = "flb_info"; - this.flb_info.Size = new System.Drawing.Size(223, 19); + this.flb_info.Size = new System.Drawing.Size(297, 24); this.flb_info.TabIndex = 7; // // panel3 // this.panel3.Controls.Add(this.cb_continuous); this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(139, 3); + this.panel3.Location = new System.Drawing.Point(184, 4); + this.panel3.Margin = new System.Windows.Forms.Padding(4); this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(126, 28); + this.panel3.Size = new System.Drawing.Size(169, 34); this.panel3.TabIndex = 56; this.panel3.Text = "panel3"; // @@ -440,17 +463,19 @@ this.cb_continuous.Dock = System.Windows.Forms.DockStyle.Fill; this.cb_continuous.Font = new System.Drawing.Font("宋体", 7.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cb_continuous.Location = new System.Drawing.Point(0, 0); + this.cb_continuous.Margin = new System.Windows.Forms.Padding(4); this.cb_continuous.Name = "cb_continuous"; - this.cb_continuous.Size = new System.Drawing.Size(126, 28); + this.cb_continuous.Size = new System.Drawing.Size(169, 34); this.cb_continuous.TabIndex = 55; this.cb_continuous.Text = "连续绘制"; // // collapseItem2 // this.collapseItem2.Controls.Add(this.tableLayoutPanel3); - this.collapseItem2.Location = new System.Drawing.Point(-268, -182); + this.collapseItem2.Location = new System.Drawing.Point(-357, -228); + this.collapseItem2.Margin = new System.Windows.Forms.Padding(4); this.collapseItem2.Name = "collapseItem2"; - this.collapseItem2.Size = new System.Drawing.Size(268, 182); + this.collapseItem2.Size = new System.Drawing.Size(357, 228); this.collapseItem2.TabIndex = 1; this.collapseItem2.Text = "ROI工具"; // @@ -469,19 +494,20 @@ "RGB", "Pseudo", "Gray"}); - this.cb_colortable.Location = new System.Drawing.Point(3, 221); + this.cb_colortable.Location = new System.Drawing.Point(4, 276); + this.cb_colortable.Margin = new System.Windows.Forms.Padding(4); this.cb_colortable.Name = "cb_colortable"; - this.cb_colortable.Size = new System.Drawing.Size(84, 20); + this.cb_colortable.Size = new System.Drawing.Size(113, 23); this.cb_colortable.TabIndex = 35; // // tableLayoutPanel2 // this.tableLayoutPanel2.ColumnCount = 5; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 67F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 27F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 27F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 56F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 75F)); this.tableLayoutPanel2.Controls.Add(this.cb_sharpen, 2, 5); this.tableLayoutPanel2.Controls.Add(this.nud_opacity, 4, 1); this.tableLayoutPanel2.Controls.Add(this.nud_brightness, 4, 0); @@ -507,33 +533,47 @@ this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); this.tableLayoutPanel2.Name = "tableLayoutPanel2"; this.tableLayoutPanel2.RowCount = 10; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 18F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 22F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 24F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 24F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 36F)); this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(260, 272); + this.tableLayoutPanel2.Size = new System.Drawing.Size(349, 340); this.tableLayoutPanel2.TabIndex = 0; // + // cb_sharpen + // + this.cb_sharpen.AutoCheck = true; + this.tableLayoutPanel2.SetColumnSpan(this.cb_sharpen, 2); + this.cb_sharpen.Dock = System.Windows.Forms.DockStyle.Fill; + this.cb_sharpen.Location = new System.Drawing.Point(98, 188); + this.cb_sharpen.Margin = new System.Windows.Forms.Padding(4); + this.cb_sharpen.Name = "cb_sharpen"; + this.cb_sharpen.Size = new System.Drawing.Size(172, 20); + this.cb_sharpen.TabIndex = 57; + this.cb_sharpen.Text = "锐化"; + // // nud_opacity // this.nud_opacity.Dock = System.Windows.Forms.DockStyle.Fill; - this.nud_opacity.Location = new System.Drawing.Point(207, 32); + this.nud_opacity.Location = new System.Drawing.Point(278, 40); + this.nud_opacity.Margin = new System.Windows.Forms.Padding(4); this.nud_opacity.Name = "nud_opacity"; - this.nud_opacity.Size = new System.Drawing.Size(50, 21); + this.nud_opacity.Size = new System.Drawing.Size(67, 25); this.nud_opacity.TabIndex = 45; // // nud_brightness // this.nud_brightness.Dock = System.Windows.Forms.DockStyle.Fill; - this.nud_brightness.Location = new System.Drawing.Point(207, 3); + this.nud_brightness.Location = new System.Drawing.Point(278, 4); + this.nud_brightness.Margin = new System.Windows.Forms.Padding(4); this.nud_brightness.Name = "nud_brightness"; - this.nud_brightness.Size = new System.Drawing.Size(50, 21); + this.nud_brightness.Size = new System.Drawing.Size(67, 25); this.nud_brightness.TabIndex = 44; // // dtb_colorMax @@ -546,13 +586,13 @@ this.dtb_colorMax.EmptyBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(221)))), ((int)(((byte)(221)))), ((int)(((byte)(221))))); this.dtb_colorMax.FillBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(217)))), ((int)(((byte)(99)))), ((int)(((byte)(50))))); this.dtb_colorMax.JumpToMouse = false; - this.dtb_colorMax.Location = new System.Drawing.Point(52, 114); - this.dtb_colorMax.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.dtb_colorMax.Location = new System.Drawing.Point(70, 141); + this.dtb_colorMax.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.dtb_colorMax.Maximum = 100; this.dtb_colorMax.Minimum = 0; - this.dtb_colorMax.MinimumSize = new System.Drawing.Size(35, 18); + this.dtb_colorMax.MinimumSize = new System.Drawing.Size(47, 22); this.dtb_colorMax.Name = "dtb_colorMax"; - this.dtb_colorMax.Size = new System.Drawing.Size(150, 22); + this.dtb_colorMax.Size = new System.Drawing.Size(201, 22); this.dtb_colorMax.TabIndex = 40; this.dtb_colorMax.Text = "dungeonTrackBar5"; this.dtb_colorMax.ThumbBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); @@ -571,13 +611,13 @@ this.dtb_colorMin.EmptyBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(221)))), ((int)(((byte)(221)))), ((int)(((byte)(221))))); this.dtb_colorMin.FillBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(217)))), ((int)(((byte)(99)))), ((int)(((byte)(50))))); this.dtb_colorMin.JumpToMouse = false; - this.dtb_colorMin.Location = new System.Drawing.Point(52, 78); - this.dtb_colorMin.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.dtb_colorMin.Location = new System.Drawing.Point(70, 96); + this.dtb_colorMin.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.dtb_colorMin.Maximum = 100; this.dtb_colorMin.Minimum = 0; - this.dtb_colorMin.MinimumSize = new System.Drawing.Size(35, 18); + this.dtb_colorMin.MinimumSize = new System.Drawing.Size(47, 22); this.dtb_colorMin.Name = "dtb_colorMin"; - this.dtb_colorMin.Size = new System.Drawing.Size(150, 22); + this.dtb_colorMin.Size = new System.Drawing.Size(201, 22); this.dtb_colorMin.TabIndex = 39; this.dtb_colorMin.Text = "dungeonTrackBar4"; this.dtb_colorMin.ThumbBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); @@ -596,13 +636,13 @@ this.dtb_opacity.EmptyBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(221)))), ((int)(((byte)(221)))), ((int)(((byte)(221))))); this.dtb_opacity.FillBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(217)))), ((int)(((byte)(99)))), ((int)(((byte)(50))))); this.dtb_opacity.JumpToMouse = false; - this.dtb_opacity.Location = new System.Drawing.Point(52, 31); - this.dtb_opacity.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.dtb_opacity.Location = new System.Drawing.Point(70, 38); + this.dtb_opacity.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.dtb_opacity.Maximum = 100; this.dtb_opacity.Minimum = 0; - this.dtb_opacity.MinimumSize = new System.Drawing.Size(35, 18); + this.dtb_opacity.MinimumSize = new System.Drawing.Size(47, 22); this.dtb_opacity.Name = "dtb_opacity"; - this.dtb_opacity.Size = new System.Drawing.Size(150, 22); + this.dtb_opacity.Size = new System.Drawing.Size(201, 22); this.dtb_opacity.TabIndex = 37; this.dtb_opacity.Text = "dungeonTrackBar2"; this.dtb_opacity.ThumbBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); @@ -616,10 +656,11 @@ this.hpb_line.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(196)))), ((int)(((byte)(204))))); this.hpb_line.Dock = System.Windows.Forms.DockStyle.Fill; this.hpb_line.Image = global::PBAnaly.Properties.Resources.线段; - this.hpb_line.Location = new System.Drawing.Point(3, 173); + this.hpb_line.Location = new System.Drawing.Point(4, 216); + this.hpb_line.Margin = new System.Windows.Forms.Padding(4); this.hpb_line.Name = "hpb_line"; this.hpb_line.PixelOffsetType = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; - this.hpb_line.Size = new System.Drawing.Size(44, 18); + this.hpb_line.Size = new System.Drawing.Size(59, 22); this.hpb_line.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; this.hpb_line.SmoothingType = System.Drawing.Drawing2D.SmoothingMode.HighQuality; this.hpb_line.TabIndex = 9; @@ -629,10 +670,10 @@ // pb_bgimage // this.pb_bgimage.Dock = System.Windows.Forms.DockStyle.Fill; - this.pb_bgimage.Location = new System.Drawing.Point(90, 218); + this.pb_bgimage.Location = new System.Drawing.Point(121, 272); this.pb_bgimage.Margin = new System.Windows.Forms.Padding(0); this.pb_bgimage.Name = "pb_bgimage"; - this.pb_bgimage.Size = new System.Drawing.Size(114, 29); + this.pb_bgimage.Size = new System.Drawing.Size(153, 36); this.pb_bgimage.TabIndex = 36; this.pb_bgimage.TabStop = false; // @@ -646,13 +687,13 @@ this.dtb_brightness.EmptyBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(221)))), ((int)(((byte)(221)))), ((int)(((byte)(221))))); this.dtb_brightness.FillBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(217)))), ((int)(((byte)(99)))), ((int)(((byte)(50))))); this.dtb_brightness.JumpToMouse = false; - this.dtb_brightness.Location = new System.Drawing.Point(52, 2); - this.dtb_brightness.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.dtb_brightness.Location = new System.Drawing.Point(70, 2); + this.dtb_brightness.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.dtb_brightness.Maximum = 100; this.dtb_brightness.Minimum = 0; - this.dtb_brightness.MinimumSize = new System.Drawing.Size(35, 18); + this.dtb_brightness.MinimumSize = new System.Drawing.Size(47, 22); this.dtb_brightness.Name = "dtb_brightness"; - this.dtb_brightness.Size = new System.Drawing.Size(150, 22); + this.dtb_brightness.Size = new System.Drawing.Size(201, 22); this.dtb_brightness.TabIndex = 2; this.dtb_brightness.Text = "dungeonTrackBar1"; this.dtb_brightness.ThumbBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(244)))), ((int)(((byte)(244)))), ((int)(((byte)(244))))); @@ -667,18 +708,19 @@ this.pl_max.BackColor = System.Drawing.Color.Transparent; this.pl_max.Controls.Add(this.nud_colorMax); this.pl_max.Dock = System.Windows.Forms.DockStyle.Fill; - this.pl_max.Location = new System.Drawing.Point(204, 112); + this.pl_max.Location = new System.Drawing.Point(274, 139); this.pl_max.Margin = new System.Windows.Forms.Padding(0); this.pl_max.Name = "pl_max"; - this.pl_max.Size = new System.Drawing.Size(56, 36); + this.pl_max.Size = new System.Drawing.Size(75, 45); this.pl_max.TabIndex = 52; this.pl_max.Text = "panel3"; // // nud_colorMax // - this.nud_colorMax.Location = new System.Drawing.Point(3, 3); + this.nud_colorMax.Location = new System.Drawing.Point(4, 4); + this.nud_colorMax.Margin = new System.Windows.Forms.Padding(4); this.nud_colorMax.Name = "nud_colorMax"; - this.nud_colorMax.Size = new System.Drawing.Size(44, 21); + this.nud_colorMax.Size = new System.Drawing.Size(59, 25); this.nud_colorMax.TabIndex = 51; // // pl_min @@ -687,18 +729,19 @@ this.pl_min.BackColor = System.Drawing.Color.Transparent; this.pl_min.Controls.Add(this.nud_colorMin); this.pl_min.Dock = System.Windows.Forms.DockStyle.Fill; - this.pl_min.Location = new System.Drawing.Point(204, 76); + this.pl_min.Location = new System.Drawing.Point(274, 94); this.pl_min.Margin = new System.Windows.Forms.Padding(0); this.pl_min.Name = "pl_min"; - this.pl_min.Size = new System.Drawing.Size(56, 36); + this.pl_min.Size = new System.Drawing.Size(75, 45); this.pl_min.TabIndex = 53; this.pl_min.Text = "panel3"; // // nud_colorMin // - this.nud_colorMin.Location = new System.Drawing.Point(3, 3); + this.nud_colorMin.Location = new System.Drawing.Point(4, 4); + this.nud_colorMin.Margin = new System.Windows.Forms.Padding(4); this.nud_colorMin.Name = "nud_colorMin"; - this.nud_colorMin.Size = new System.Drawing.Size(44, 21); + this.nud_colorMin.Size = new System.Drawing.Size(59, 25); this.nud_colorMin.TabIndex = 50; // // cb_scientific @@ -706,9 +749,10 @@ this.cb_scientific.AutoCheck = true; this.tableLayoutPanel2.SetColumnSpan(this.cb_scientific, 2); this.cb_scientific.Dock = System.Windows.Forms.DockStyle.Fill; - this.cb_scientific.Location = new System.Drawing.Point(3, 151); + this.cb_scientific.Location = new System.Drawing.Point(4, 188); + this.cb_scientific.Margin = new System.Windows.Forms.Padding(4); this.cb_scientific.Name = "cb_scientific"; - this.cb_scientific.Size = new System.Drawing.Size(64, 16); + this.cb_scientific.Size = new System.Drawing.Size(86, 20); this.cb_scientific.TabIndex = 54; this.cb_scientific.Text = "光子量"; // @@ -716,9 +760,10 @@ // this.panel1.Controls.Add(this.tableLayoutPanel2); this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Location = new System.Drawing.Point(4, 4); + this.panel1.Margin = new System.Windows.Forms.Padding(4); this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(260, 272); + this.panel1.Size = new System.Drawing.Size(349, 340); this.panel1.TabIndex = 0; this.panel1.Text = "panel1"; // @@ -726,26 +771,26 @@ // this.tableLayoutPanel1.ColumnCount = 1; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 27F)); this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0); this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 278F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 348F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 6F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(266, 302); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 8F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(357, 378); this.tableLayoutPanel1.TabIndex = 0; // // collapseItem1 // this.collapseItem1.Controls.Add(this.tableLayoutPanel1); - this.collapseItem1.Expand = true; - this.collapseItem1.Location = new System.Drawing.Point(19, 59); + this.collapseItem1.Location = new System.Drawing.Point(-357, -378); + this.collapseItem1.Margin = new System.Windows.Forms.Padding(4); this.collapseItem1.Name = "collapseItem1"; - this.collapseItem1.Size = new System.Drawing.Size(266, 302); + this.collapseItem1.Size = new System.Drawing.Size(357, 378); this.collapseItem1.TabIndex = 0; this.collapseItem1.Text = "图像调整"; // @@ -758,27 +803,29 @@ this.cll_panel.Items.Add(this.collapseItem2); this.cll_panel.Items.Add(this.collapseItem3); this.cll_panel.Location = new System.Drawing.Point(0, 0); + this.cll_panel.Margin = new System.Windows.Forms.Padding(4); this.cll_panel.Name = "cll_panel"; - this.cll_panel.Size = new System.Drawing.Size(304, 495); + this.cll_panel.Size = new System.Drawing.Size(405, 619); this.cll_panel.TabIndex = 1; this.cll_panel.Text = "fed"; // // collapseItem3 // this.collapseItem3.Controls.Add(this.tableLayoutPanel4); - this.collapseItem3.Location = new System.Drawing.Point(-266, -165); + this.collapseItem3.Location = new System.Drawing.Point(-357, -206); + this.collapseItem3.Margin = new System.Windows.Forms.Padding(4); this.collapseItem3.Name = "collapseItem3"; - this.collapseItem3.Size = new System.Drawing.Size(266, 165); + this.collapseItem3.Size = new System.Drawing.Size(357, 206); this.collapseItem3.TabIndex = 2; this.collapseItem3.Text = "标签工具"; // // tableLayoutPanel4 // this.tableLayoutPanel4.ColumnCount = 5; - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); - this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 34F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 45F)); this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel4.Controls.Add(this.panel4, 0, 1); this.tableLayoutPanel4.Controls.Add(this.ava_textbox, 0, 0); @@ -787,11 +834,11 @@ this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(0); this.tableLayoutPanel4.Name = "tableLayoutPanel4"; this.tableLayoutPanel4.RowCount = 3; - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 34F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 42F)); this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel4.Size = new System.Drawing.Size(266, 165); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(357, 206); this.tableLayoutPanel4.TabIndex = 1; // // panel4 @@ -801,9 +848,10 @@ this.panel4.Controls.Add(this.foxLabel12); this.panel4.Controls.Add(this.foxLabel15); this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel4.Location = new System.Drawing.Point(3, 37); + this.panel4.Location = new System.Drawing.Point(4, 46); + this.panel4.Margin = new System.Windows.Forms.Padding(4); this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(260, 105); + this.panel4.Size = new System.Drawing.Size(349, 131); this.panel4.TabIndex = 15; this.panel4.Text = "panel4"; // @@ -818,9 +866,10 @@ this.dtb_textbox.ColorE = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); this.dtb_textbox.ColorF = System.Drawing.Color.Black; this.dtb_textbox.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); - this.dtb_textbox.Location = new System.Drawing.Point(51, 3); + this.dtb_textbox.Location = new System.Drawing.Point(68, 4); + this.dtb_textbox.Margin = new System.Windows.Forms.Padding(4); this.dtb_textbox.Name = "dtb_textbox"; - this.dtb_textbox.Size = new System.Drawing.Size(80, 21); + this.dtb_textbox.Size = new System.Drawing.Size(106, 25); this.dtb_textbox.TabIndex = 8; this.dtb_textbox.Text = "10"; // @@ -829,9 +878,10 @@ this.foxLabel12.BackColor = System.Drawing.Color.Transparent; this.foxLabel12.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel12.Location = new System.Drawing.Point(1, 101); + this.foxLabel12.Location = new System.Drawing.Point(1, 126); + this.foxLabel12.Margin = new System.Windows.Forms.Padding(4); this.foxLabel12.Name = "foxLabel12"; - this.foxLabel12.Size = new System.Drawing.Size(223, 19); + this.foxLabel12.Size = new System.Drawing.Size(297, 24); this.foxLabel12.TabIndex = 7; // // foxLabel15 @@ -839,9 +889,10 @@ this.foxLabel15.BackColor = System.Drawing.Color.Transparent; this.foxLabel15.Font = new System.Drawing.Font("Segoe UI", 10F, System.Drawing.FontStyle.Bold); this.foxLabel15.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(88)))), ((int)(((byte)(100))))); - this.foxLabel15.Location = new System.Drawing.Point(3, 3); + this.foxLabel15.Location = new System.Drawing.Point(4, 4); + this.foxLabel15.Margin = new System.Windows.Forms.Padding(4); this.foxLabel15.Name = "foxLabel15"; - this.foxLabel15.Size = new System.Drawing.Size(59, 19); + this.foxLabel15.Size = new System.Drawing.Size(79, 24); this.foxLabel15.TabIndex = 0; this.foxLabel15.Text = "value="; // @@ -851,31 +902,21 @@ this.ava_textbox.Dock = System.Windows.Forms.DockStyle.Fill; this.ava_textbox.Image = global::PBAnaly.Properties.Resources.文本; this.ava_textbox.ImageFit = AntdUI.TFit.Contain; - this.ava_textbox.Location = new System.Drawing.Point(3, 3); + this.ava_textbox.Location = new System.Drawing.Point(4, 4); + this.ava_textbox.Margin = new System.Windows.Forms.Padding(4); this.ava_textbox.Name = "ava_textbox"; - this.ava_textbox.Size = new System.Drawing.Size(28, 28); + this.ava_textbox.Size = new System.Drawing.Size(37, 34); this.ava_textbox.TabIndex = 0; this.ava_textbox.Text = "a"; // - // cb_sharpen - // - this.cb_sharpen.AutoCheck = true; - this.tableLayoutPanel2.SetColumnSpan(this.cb_sharpen, 2); - this.cb_sharpen.Dock = System.Windows.Forms.DockStyle.Fill; - this.cb_sharpen.Location = new System.Drawing.Point(73, 151); - this.cb_sharpen.Name = "cb_sharpen"; - this.cb_sharpen.Size = new System.Drawing.Size(128, 16); - this.cb_sharpen.TabIndex = 57; - this.cb_sharpen.Text = "锐化"; - // // BioanayImagePaletteForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(304, 495); + this.ClientSize = new System.Drawing.Size(405, 619); this.Controls.Add(this.cll_panel); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.Name = "BioanayImagePaletteForm"; this.Text = "BioanayImagePaletteForm"; this.tableLayoutPanel3.ResumeLayout(false); diff --git a/src/PBAnaly/UI/LanesImagePaletteForm.Designer.cs b/src/PBAnaly/UI/LanesImagePaletteForm.Designer.cs new file mode 100644 index 0000000..f5c39c0 --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePaletteForm.Designer.cs @@ -0,0 +1,114 @@ +namespace PBAnaly.UI +{ + partial class LanesImagePaletteForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.collapse1 = new AntdUI.Collapse(); + this.clasi_lanes = new AntdUI.CollapseItem(); + this.clasi_init = new AntdUI.CollapseItem(); + this.clasi_strips = new AntdUI.CollapseItem(); + this.clasi_conformity = new AntdUI.CollapseItem(); + this.collapse1.SuspendLayout(); + this.SuspendLayout(); + // + // collapse1 + // + this.collapse1.BackColor = System.Drawing.SystemColors.Control; + this.collapse1.BadgeOffsetX = 10; + this.collapse1.BadgeOffsetY = 100; + this.collapse1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.collapse1.Cursor = System.Windows.Forms.Cursors.Hand; + this.collapse1.Dock = System.Windows.Forms.DockStyle.Fill; + this.collapse1.HeaderBg = System.Drawing.Color.FromArgb(((int)(((byte)(155)))), ((int)(((byte)(163)))), ((int)(((byte)(168))))); + this.collapse1.Items.Add(this.clasi_lanes); + this.collapse1.Items.Add(this.clasi_init); + this.collapse1.Items.Add(this.clasi_strips); + this.collapse1.Items.Add(this.clasi_conformity); + this.collapse1.Location = new System.Drawing.Point(0, 0); + this.collapse1.Name = "collapse1"; + this.collapse1.Size = new System.Drawing.Size(405, 619); + this.collapse1.TabIndex = 0; + this.collapse1.Text = "collapse1"; + // + // clasi_lanes + // + this.clasi_lanes.Expand = true; + this.clasi_lanes.Location = new System.Drawing.Point(23, 72); + this.clasi_lanes.Name = "clasi_lanes"; + this.clasi_lanes.Size = new System.Drawing.Size(359, 170); + this.clasi_lanes.TabIndex = 0; + this.clasi_lanes.Text = "泳道"; + // + // clasi_init + // + this.clasi_init.Location = new System.Drawing.Point(-359, -60); + this.clasi_init.Name = "clasi_init"; + this.clasi_init.Size = new System.Drawing.Size(359, 60); + this.clasi_init.TabIndex = 1; + this.clasi_init.Text = "初始井"; + // + // clasi_strips + // + this.clasi_strips.Location = new System.Drawing.Point(-100, -60); + this.clasi_strips.Name = "clasi_strips"; + this.clasi_strips.Size = new System.Drawing.Size(100, 60); + this.clasi_strips.TabIndex = 2; + this.clasi_strips.Text = "条带"; + // + // clasi_conformity + // + this.clasi_conformity.Location = new System.Drawing.Point(-100, -60); + this.clasi_conformity.Name = "clasi_conformity"; + this.clasi_conformity.Size = new System.Drawing.Size(100, 60); + this.clasi_conformity.TabIndex = 3; + this.clasi_conformity.Text = "整合"; + // + // LanesImagePaletteForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(405, 619); + this.Controls.Add(this.collapse1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.Name = "LanesImagePaletteForm"; + this.Text = "BioanayImagePaletteForm"; + this.collapse1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private AntdUI.Collapse collapse1; + private AntdUI.CollapseItem clasi_lanes; + private AntdUI.CollapseItem clasi_init; + private AntdUI.CollapseItem clasi_strips; + private AntdUI.CollapseItem clasi_conformity; + } +} \ No newline at end of file diff --git a/src/PBAnaly/UI/LanesImagePaletteForm.cs b/src/PBAnaly/UI/LanesImagePaletteForm.cs new file mode 100644 index 0000000..6f17814 --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePaletteForm.cs @@ -0,0 +1,25 @@ +using Aspose.Pdf.Drawing; +using Aspose.Pdf; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PBAnaly.UI +{ + public partial class LanesImagePaletteForm : Form + { + + public LanesImagePaletteForm() + { + InitializeComponent(); + } + + + } +} diff --git a/src/PBAnaly/UI/LanesImagePaletteForm.resx b/src/PBAnaly/UI/LanesImagePaletteForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePaletteForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/PBAnaly/UI/LanesImagePanel.Designer.cs b/src/PBAnaly/UI/LanesImagePanel.Designer.cs new file mode 100644 index 0000000..3c7f242 --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePanel.Designer.cs @@ -0,0 +1,425 @@ +namespace PBAnaly.UI +{ + partial class LanesImagePanel + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.wdb_title = new AntdUI.WindowBar(); + this.panel1 = new AntdUI.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.flowPanel1 = new AntdUI.FlowPanel(); + this.ava_saveReport = new AntdUI.Avatar(); + this.ava_save = new AntdUI.Avatar(); + this.ava_zoom_out = new AntdUI.Avatar(); + this.ava__zoom_in = new AntdUI.Avatar(); + this.ava_auto = new AntdUI.Avatar(); + this.pl_bottom = new AntdUI.Panel(); + this.tlp_bottom_panel = new System.Windows.Forms.TableLayoutPanel(); + this.lb_name = new AntdUI.Label(); + this.lb_size = new AntdUI.Label(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.pl_panel_image = new AntdUI.Panel(); + this.pl_bg_panel = new AntdUI.Panel(); + this.image_pl = new System.Windows.Forms.PictureBox(); + this.ctms_strop = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.ctms_strop_copy = new System.Windows.Forms.ToolStripMenuItem(); + this.ctms_strop_stickup = new System.Windows.Forms.ToolStripMenuItem(); + this.ctms_strop_delete = new System.Windows.Forms.ToolStripMenuItem(); + this.lb_imageIndex = new AntdUI.Label(); + this.panel2 = new AntdUI.Panel(); + this.panel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.flowPanel1.SuspendLayout(); + this.pl_bottom.SuspendLayout(); + this.tlp_bottom_panel.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.pl_panel_image.SuspendLayout(); + this.pl_bg_panel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.image_pl)).BeginInit(); + this.ctms_strop.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // wdb_title + // + this.wdb_title.BackColor = System.Drawing.SystemColors.ActiveCaptionText; + this.wdb_title.Dock = System.Windows.Forms.DockStyle.Top; + this.wdb_title.ForeColor = System.Drawing.SystemColors.ButtonFace; + this.wdb_title.IsMax = false; + this.wdb_title.Location = new System.Drawing.Point(4, 4); + this.wdb_title.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.wdb_title.MinimizeBox = false; + this.wdb_title.Name = "wdb_title"; + this.wdb_title.ShowIcon = false; + this.wdb_title.Size = new System.Drawing.Size(469, 29); + this.wdb_title.TabIndex = 0; + this.wdb_title.Text = " "; + this.wdb_title.UseSystemStyleColor = true; + // + // panel1 + // + this.panel1.Controls.Add(this.tableLayoutPanel1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(4, 33); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(469, 29); + this.panel1.TabIndex = 1; + this.panel1.Text = "panel1"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 175F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 92F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 167F)); + this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.flowPanel1, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.ava_auto, 2, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(469, 29); + this.tableLayoutPanel1.TabIndex = 0; + // + // flowPanel1 + // + this.flowPanel1.Controls.Add(this.ava_saveReport); + this.flowPanel1.Controls.Add(this.ava_save); + this.flowPanel1.Controls.Add(this.ava_zoom_out); + this.flowPanel1.Controls.Add(this.ava__zoom_in); + this.flowPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowPanel1.Location = new System.Drawing.Point(302, 0); + this.flowPanel1.Margin = new System.Windows.Forms.Padding(0); + this.flowPanel1.Name = "flowPanel1"; + this.flowPanel1.Size = new System.Drawing.Size(167, 29); + this.flowPanel1.TabIndex = 2; + this.flowPanel1.Text = "flowPanel1"; + // + // ava_saveReport + // + this.ava_saveReport.Cursor = System.Windows.Forms.Cursors.Hand; + this.ava_saveReport.Image = global::PBAnaly.Properties.Resources.数据报告__1_; + this.ava_saveReport.ImageFit = AntdUI.TFit.Contain; + this.ava_saveReport.Location = new System.Drawing.Point(127, 4); + this.ava_saveReport.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ava_saveReport.Name = "ava_saveReport"; + this.ava_saveReport.Size = new System.Drawing.Size(28, 21); + this.ava_saveReport.TabIndex = 7; + this.ava_saveReport.Text = "a"; + // + // ava_save + // + this.ava_save.Cursor = System.Windows.Forms.Cursors.Hand; + this.ava_save.Image = global::PBAnaly.Properties.Resources.保存图片; + this.ava_save.ImageFit = AntdUI.TFit.Contain; + this.ava_save.Location = new System.Drawing.Point(86, 4); + this.ava_save.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ava_save.Name = "ava_save"; + this.ava_save.Size = new System.Drawing.Size(33, 21); + this.ava_save.TabIndex = 6; + this.ava_save.Text = "a"; + this.ava_save.Click += new System.EventHandler(this.ava_save_Click); + // + // ava_zoom_out + // + this.ava_zoom_out.Cursor = System.Windows.Forms.Cursors.Hand; + this.ava_zoom_out.Image = global::PBAnaly.Properties.Resources.缩小; + this.ava_zoom_out.ImageFit = AntdUI.TFit.Contain; + this.ava_zoom_out.Location = new System.Drawing.Point(45, 4); + this.ava_zoom_out.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ava_zoom_out.Name = "ava_zoom_out"; + this.ava_zoom_out.Size = new System.Drawing.Size(33, 21); + this.ava_zoom_out.TabIndex = 5; + this.ava_zoom_out.Text = "a"; + this.ava_zoom_out.Click += new System.EventHandler(this.ava_zoom_out_Click); + // + // ava__zoom_in + // + this.ava__zoom_in.Cursor = System.Windows.Forms.Cursors.Hand; + this.ava__zoom_in.Image = global::PBAnaly.Properties.Resources.放大; + this.ava__zoom_in.ImageFit = AntdUI.TFit.Contain; + this.ava__zoom_in.Location = new System.Drawing.Point(4, 4); + this.ava__zoom_in.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ava__zoom_in.Name = "ava__zoom_in"; + this.ava__zoom_in.Size = new System.Drawing.Size(33, 21); + this.ava__zoom_in.TabIndex = 4; + this.ava__zoom_in.Text = ""; + this.ava__zoom_in.Click += new System.EventHandler(this.ava__zoom_in_Click); + // + // ava_auto + // + this.ava_auto.Cursor = System.Windows.Forms.Cursors.Hand; + this.ava_auto.HandCursor = System.Windows.Forms.Cursors.IBeam; + this.ava_auto.Image = global::PBAnaly.Properties.Resources.全屏; + this.ava_auto.ImageFit = AntdUI.TFit.Contain; + this.ava_auto.Location = new System.Drawing.Point(271, 4); + this.ava_auto.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.ava_auto.Name = "ava_auto"; + this.ava_auto.Size = new System.Drawing.Size(27, 21); + this.ava_auto.TabIndex = 3; + this.ava_auto.Text = "a"; + this.ava_auto.Click += new System.EventHandler(this.ava_auto_Click); + // + // pl_bottom + // + this.pl_bottom.BackColor = System.Drawing.SystemColors.ActiveCaptionText; + this.pl_bottom.Controls.Add(this.tlp_bottom_panel); + this.pl_bottom.Dock = System.Windows.Forms.DockStyle.Bottom; + this.pl_bottom.Location = new System.Drawing.Point(4, 365); + this.pl_bottom.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pl_bottom.Name = "pl_bottom"; + this.pl_bottom.Size = new System.Drawing.Size(469, 16); + this.pl_bottom.TabIndex = 2; + this.pl_bottom.Text = "panel3"; + // + // tlp_bottom_panel + // + this.tlp_bottom_panel.ColumnCount = 5; + this.tlp_bottom_panel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tlp_bottom_panel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 1F)); + this.tlp_bottom_panel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 1F)); + this.tlp_bottom_panel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 1F)); + this.tlp_bottom_panel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 1F)); + this.tlp_bottom_panel.Controls.Add(this.lb_name, 0, 0); + this.tlp_bottom_panel.Controls.Add(this.lb_size, 4, 0); + this.tlp_bottom_panel.Dock = System.Windows.Forms.DockStyle.Fill; + this.tlp_bottom_panel.Location = new System.Drawing.Point(0, 0); + this.tlp_bottom_panel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.tlp_bottom_panel.Name = "tlp_bottom_panel"; + this.tlp_bottom_panel.RowCount = 1; + this.tlp_bottom_panel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tlp_bottom_panel.Size = new System.Drawing.Size(469, 16); + this.tlp_bottom_panel.TabIndex = 1; + // + // lb_name + // + this.lb_name.BackColor = System.Drawing.Color.Transparent; + this.lb_name.Dock = System.Windows.Forms.DockStyle.Fill; + this.lb_name.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); + this.lb_name.Location = new System.Drawing.Point(0, 0); + this.lb_name.Margin = new System.Windows.Forms.Padding(0); + this.lb_name.Name = "lb_name"; + this.lb_name.Size = new System.Drawing.Size(465, 16); + this.lb_name.TabIndex = 1; + this.lb_name.Text = "800x600"; + // + // lb_size + // + this.lb_size.BackColor = System.Drawing.Color.Transparent; + this.lb_size.Dock = System.Windows.Forms.DockStyle.Fill; + this.lb_size.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(237)))), ((int)(((byte)(237)))), ((int)(((byte)(237))))); + this.lb_size.Location = new System.Drawing.Point(468, 0); + this.lb_size.Margin = new System.Windows.Forms.Padding(0); + this.lb_size.Name = "lb_size"; + this.lb_size.Size = new System.Drawing.Size(1, 16); + this.lb_size.TabIndex = 0; + this.lb_size.Text = "800x600"; + this.lb_size.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lb_size.Visible = false; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 2F)); + this.tableLayoutPanel2.Controls.Add(this.pl_panel_image, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(4, 62); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(469, 303); + this.tableLayoutPanel2.TabIndex = 3; + // + // pl_panel_image + // + this.pl_panel_image.ArrowSize = 0; + this.pl_panel_image.Back = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(19)))), ((int)(((byte)(19))))); + this.pl_panel_image.Badge = ""; + this.pl_panel_image.BadgeOffsetX = 0; + this.pl_panel_image.BadgeOffsetY = -100; + this.pl_panel_image.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(19)))), ((int)(((byte)(19))))); + this.pl_panel_image.BorderStyle = System.Drawing.Drawing2D.DashStyle.Custom; + this.pl_panel_image.BorderWidth = 5F; + this.pl_panel_image.Controls.Add(this.pl_bg_panel); + this.pl_panel_image.Dock = System.Windows.Forms.DockStyle.Fill; + this.pl_panel_image.Location = new System.Drawing.Point(4, 4); + this.pl_panel_image.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pl_panel_image.Name = "pl_panel_image"; + this.pl_panel_image.Padding = new System.Windows.Forms.Padding(7, 6, 7, 6); + this.pl_panel_image.Size = new System.Drawing.Size(459, 295); + this.pl_panel_image.TabIndex = 0; + this.pl_panel_image.Text = "panel4"; + // + // pl_bg_panel + // + this.pl_bg_panel.Controls.Add(this.image_pl); + this.pl_bg_panel.Location = new System.Drawing.Point(0, 0); + this.pl_bg_panel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pl_bg_panel.Name = "pl_bg_panel"; + this.pl_bg_panel.Size = new System.Drawing.Size(297, 231); + this.pl_bg_panel.TabIndex = 0; + this.pl_bg_panel.Text = "panel4"; + // + // image_pl + // + this.image_pl.ContextMenuStrip = this.ctms_strop; + this.image_pl.Dock = System.Windows.Forms.DockStyle.Fill; + this.image_pl.Location = new System.Drawing.Point(0, 0); + this.image_pl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.image_pl.Name = "image_pl"; + this.image_pl.Size = new System.Drawing.Size(297, 231); + this.image_pl.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.image_pl.TabIndex = 0; + this.image_pl.TabStop = false; + // + // ctms_strop + // + this.ctms_strop.ImageScalingSize = new System.Drawing.Size(20, 20); + this.ctms_strop.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripSeparator1, + this.ctms_strop_copy, + this.ctms_strop_stickup, + this.ctms_strop_delete}); + this.ctms_strop.Name = "ctms_strop"; + this.ctms_strop.Size = new System.Drawing.Size(109, 82); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(105, 6); + // + // ctms_strop_copy + // + this.ctms_strop_copy.Name = "ctms_strop_copy"; + this.ctms_strop_copy.Size = new System.Drawing.Size(108, 24); + this.ctms_strop_copy.Text = "复制"; + // + // ctms_strop_stickup + // + this.ctms_strop_stickup.Name = "ctms_strop_stickup"; + this.ctms_strop_stickup.Size = new System.Drawing.Size(108, 24); + this.ctms_strop_stickup.Text = "粘贴"; + // + // ctms_strop_delete + // + this.ctms_strop_delete.Name = "ctms_strop_delete"; + this.ctms_strop_delete.Size = new System.Drawing.Size(108, 24); + this.ctms_strop_delete.Text = "删除"; + // + // lb_imageIndex + // + this.lb_imageIndex.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.lb_imageIndex.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134))); + this.lb_imageIndex.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(216)))), ((int)(((byte)(83)))), ((int)(((byte)(36))))); + this.lb_imageIndex.Location = new System.Drawing.Point(4, 0); + this.lb_imageIndex.Margin = new System.Windows.Forms.Padding(4); + this.lb_imageIndex.Name = "lb_imageIndex"; + this.lb_imageIndex.Size = new System.Drawing.Size(36, 29); + this.lb_imageIndex.TabIndex = 0; + this.lb_imageIndex.Text = "0"; + this.lb_imageIndex.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Back = System.Drawing.SystemColors.Control; + this.panel2.Controls.Add(this.lb_imageIndex); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(175, 29); + this.panel2.TabIndex = 0; + this.panel2.Text = "panel2"; + // + // LanesImagePanel + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(477, 385); + this.Controls.Add(this.tableLayoutPanel2); + this.Controls.Add(this.pl_bottom); + this.Controls.Add(this.panel1); + this.Controls.Add(this.wdb_title); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Name = "LanesImagePanel"; + this.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Text = "BioanalyImagePanel"; + this.SizeChanged += new System.EventHandler(this.BioanalyImagePanel_SizeChanged); + this.MouseEnter += new System.EventHandler(this.BioanalyImagePanel_MouseEnter); + this.panel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.flowPanel1.ResumeLayout(false); + this.pl_bottom.ResumeLayout(false); + this.tlp_bottom_panel.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.pl_panel_image.ResumeLayout(false); + this.pl_bg_panel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.image_pl)).EndInit(); + this.ctms_strop.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private AntdUI.Panel panel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private AntdUI.FlowPanel flowPanel1; + private AntdUI.Avatar ava_auto; + private AntdUI.Label lb_size; + public AntdUI.Avatar ava_zoom_out; + public AntdUI.Avatar ava__zoom_in; + public AntdUI.Panel pl_bg_panel; + public AntdUI.Panel pl_panel_image; + public System.Windows.Forms.PictureBox image_pl; + public AntdUI.WindowBar wdb_title; + public AntdUI.Avatar ava_saveReport; + private AntdUI.Avatar ava_save; + public System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + public System.Windows.Forms.ContextMenuStrip ctms_strop; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + public System.Windows.Forms.ToolStripMenuItem ctms_strop_copy; + public System.Windows.Forms.ToolStripMenuItem ctms_strop_stickup; + public System.Windows.Forms.ToolStripMenuItem ctms_strop_delete; + private AntdUI.Label lb_name; + public AntdUI.Panel pl_bottom; + public System.Windows.Forms.TableLayoutPanel tlp_bottom_panel; + private AntdUI.Panel panel2; + public AntdUI.Label lb_imageIndex; + } +} \ No newline at end of file diff --git a/src/PBAnaly/UI/LanesImagePanel.cs b/src/PBAnaly/UI/LanesImagePanel.cs new file mode 100644 index 0000000..b4467af --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePanel.cs @@ -0,0 +1,274 @@ +using PBAnaly.Module; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.PixelFormats; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace PBAnaly.UI +{ + public partial class LanesImagePanel : Form + { + + #region Key + private const int WM_NCHITTEST = 0x84; + private const int HTCLIENT = 0x1; + private const int HTCAPTION = 0x2; + private const int HTLEFT = 0x10; + private const int HTRIGHT = 0x11; + private const int HTTOP = 0x12; + private const int HTTOPLEFT = 0x13; + private const int HTTOPRIGHT = 0x14; + private const int HTBOTTOM = 0x15; + private const int HTBOTTOMLEFT = 0x16; + private const int HTBOTTOMRIGHT = 0x17; + #endregion + private const float ZoomMaxFactor = 2.0f; + private const float ZoomMinFactor = 1.2f; + private const float ZoomFactor = 1.2f; + private float currentZoom = 1.0f; + public LanesImagePanel() + { + InitializeComponent(); + this.FormBorderStyle = FormBorderStyle.None; + pl_bg_panel.Dock = DockStyle.None; + pl_bg_panel.Location = new System.Drawing.Point(pl_panel_image.Location.X, pl_panel_image.Location.Y); + pl_bg_panel.Width = pl_panel_image.Width; + pl_bg_panel.Height = pl_panel_image.Height; + CenterPictureBox(); + + image_pl.MouseWheel += Image_pl_MouseWheel; + } + + + + #region 对外方法 + public void SetButtomLabel(string value) + { + lb_size.Text = value; + } + public void SetButtomName(string value) + { + lb_name.Text = value; + } + public void SetImage(Image image) + { + if (image_pl.InvokeRequired) + { + image_pl.Invoke(new MethodInvoker(() => + { + image_pl.Image = util.ConvertL16ToBitmap(image); + })); + + } + else + { + image_pl.Image = util.ConvertL16ToBitmap(image); + } + + + } + public void SetImageL16(Image image) + { + if (image_pl.InvokeRequired) + { + image_pl.Invoke(new MethodInvoker(() => + { + image_pl.Image = util.ConvertL16ToBitmap(image); + + })); + + } + else + { + image_pl.Image = util.ConvertL16ToBitmap(image); + + } + + + } + public void SetImage(Image image) + { + if (image_pl.InvokeRequired) + { + image_pl.Invoke(new MethodInvoker(() => + { + image_pl.Image = util.ConvertRgb24ImageToBitmap(image); + })); + + } + else + { + image_pl.Image = util.ConvertRgb24ImageToBitmap(image); + } + + } + + public bool IsImageLargerThanPanel() + { + return pl_bg_panel.Width > pl_panel_image.ClientSize.Width || pl_bg_panel.Height > pl_panel_image.ClientSize.Height; + } + + #endregion + #region WndProc + protected override void WndProc(ref Message m) + { + switch (m.Msg) + { + case WM_NCHITTEST: + base.WndProc(ref m); + System.Drawing.Point pos = this.PointToClient(new System.Drawing.Point(m.LParam.ToInt32() & 0xFFFF, m.LParam.ToInt32() >> 16)); + + + if (pos.X < 10) + { + if (pos.Y < 10) m.Result = (IntPtr)HTTOPLEFT; + else if (pos.Y > this.ClientSize.Height - 10) m.Result = (IntPtr)HTBOTTOMLEFT; + else m.Result = (IntPtr)HTLEFT; + } + else if (pos.X > this.ClientSize.Width - 10) + { + if (pos.Y < 10) m.Result = (IntPtr)HTTOPRIGHT; + else if (pos.Y > this.ClientSize.Height - 10) m.Result = (IntPtr)HTBOTTOMRIGHT; + else m.Result = (IntPtr)HTRIGHT; + } + else if (pos.Y < 10) + { + m.Result = (IntPtr)HTTOP; + } + else if (pos.Y > this.ClientSize.Height - 10) + { + m.Result = (IntPtr)HTBOTTOM; + } + break; + default: + base.WndProc(ref m); + break; + } + } + #endregion + + #region 事件 + public void ava_auto_Click(object sender, EventArgs e) + { + //pl_panel_image.Back = System.Drawing.Color.Gray; + pl_bg_panel.Location = new System.Drawing.Point(pl_panel_image.Location.X, pl_panel_image.Location.Y); + pl_bg_panel.Width = pl_panel_image.Width - 10; + pl_bg_panel.Height = pl_panel_image.Height -10; + CenterPictureBox(); + } + private void ava__zoom_in_Click(object sender, EventArgs e) + { + ZoomPictureBox(ZoomFactor); + } + private void ava_zoom_out_Click(object sender, EventArgs e) + { + ZoomPictureBox(1 / ZoomFactor); + } + private void Image_pl_MouseWheel(object sender, MouseEventArgs e) + { + if (e.Delta > 0) + { + // 滚轮向上,放大图片 + ZoomPictureBox(ZoomFactor); + } + else if (e.Delta < 0) + { + + ZoomPictureBox(1 / ZoomFactor); + } + } + + private void ava_save_Click(object sender, EventArgs e) + { + // 创建一个位图,其大小与panel相同 + Bitmap bitmap = new Bitmap(this.Width, this.Height); + + // 将panel的视图渲染到位图上 + this.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, this.Width, this.Height)); + + // 弹出保存文件对话框 + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + saveFileDialog.Title = "保存Panel图像"; + saveFileDialog.Filter = "PNG 图片|*.png|JPEG 图片|*.jpg|BMP 图片|*.bmp"; + if (saveFileDialog.ShowDialog() + == DialogResult.OK) + { + // 根据文件扩展名选择格式 + System.Drawing.Imaging.ImageFormat format = System.Drawing.Imaging.ImageFormat.Bmp; + switch (System.IO.Path.GetExtension(saveFileDialog.FileName).ToLower()) + { + case ".jpg": + format = System.Drawing.Imaging.ImageFormat.Jpeg; + break; + case ".bmp": + format = System.Drawing.Imaging.ImageFormat.Bmp; + break; + } + bitmap.Save(saveFileDialog.FileName, format); // 保存图像到文件 + } + } + } + private void BioanalyImagePanel_SizeChanged(object sender, EventArgs e) + { + pl_bg_panel.Location = new System.Drawing.Point(pl_panel_image.Location.X, pl_panel_image.Location.Y); + pl_bg_panel.Width = pl_panel_image.Width; + pl_bg_panel.Height = pl_panel_image.Height; + CenterPictureBox(); + } + #endregion + + #region 方法 + public void CenterPictureBox() + { + // 设置 pl_bg_image 的位置,使其在 pl_image 中居中 + pl_bg_panel.Left = (pl_panel_image.ClientSize.Width - pl_bg_panel.Width) / 2; + pl_bg_panel.Top = (pl_panel_image.ClientSize.Height - pl_bg_panel.Height) / 2; + + + + //// 防止图片超过panel的边界 + if (pl_bg_panel.Left < 0) pl_bg_panel.Left = 0; + if (pl_bg_panel.Top < 0) pl_bg_panel.Top = 0; + } + private void ZoomPictureBox(float factor) + { + + currentZoom *= factor; + int w = (int)(pl_bg_panel.Width * factor); + int h = (int)(pl_bg_panel.Height * factor); + if (w < pl_panel_image.Width - 50 || h < pl_panel_image.Height - 50) + { + w = pl_panel_image.Width ; + h = pl_panel_image.Height ; + } + + if (w > pl_panel_image.Width * 5 || h > pl_panel_image.Height * 5) + { + w = pl_panel_image.Width * 5; + h = pl_panel_image.Height * 5; + } + // 按照缩放比例调整pl_bg_image的宽度和高度 + pl_bg_panel.Width = w; + pl_bg_panel.Height = h; + // 调用方法使PB_image在pl_image中居中 + CenterPictureBox(); + } + + + #endregion + + private void BioanalyImagePanel_MouseEnter(object sender, EventArgs e) + { + + } + } +} diff --git a/src/PBAnaly/UI/LanesImagePanel.resx b/src/PBAnaly/UI/LanesImagePanel.resx new file mode 100644 index 0000000..719a85a --- /dev/null +++ b/src/PBAnaly/UI/LanesImagePanel.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/src/PBAnaly/UI/MultiImageForm.Designer.cs b/src/PBAnaly/UI/MultiImageForm.Designer.cs new file mode 100644 index 0000000..979d963 --- /dev/null +++ b/src/PBAnaly/UI/MultiImageForm.Designer.cs @@ -0,0 +1,225 @@ +namespace PBAnaly.UI +{ + partial class MultiImageForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new AntdUI.Label(); + this.pb_image = new System.Windows.Forms.PictureBox(); + this.ab_one = new ReaLTaiizor.Controls.AirButton(); + this.ab_last = new ReaLTaiizor.Controls.AirButton(); + this.ab_next = new ReaLTaiizor.Controls.AirButton(); + this.ab_atLast = new ReaLTaiizor.Controls.AirButton(); + this.lb_lable = new AntdUI.Label(); + this.ab_saveTif = new ReaLTaiizor.Controls.AirButton(); + this.ab_close = new ReaLTaiizor.Controls.AirButton(); + this.ab_open_cur_tif = new ReaLTaiizor.Controls.AirButton(); + this.cb_path = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.pb_image)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(12, 12); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 23); + this.label1.TabIndex = 0; + this.label1.Text = "路径:"; + // + // pb_image + // + this.pb_image.Location = new System.Drawing.Point(24, 67); + this.pb_image.Name = "pb_image"; + this.pb_image.Size = new System.Drawing.Size(752, 447); + this.pb_image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pb_image.TabIndex = 2; + this.pb_image.TabStop = false; + // + // ab_one + // + this.ab_one.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_one.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_one.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_one.Image = null; + this.ab_one.Location = new System.Drawing.Point(24, 530); + this.ab_one.Name = "ab_one"; + this.ab_one.NoRounding = false; + this.ab_one.Size = new System.Drawing.Size(81, 40); + this.ab_one.TabIndex = 3; + this.ab_one.Text = "第一幅"; + this.ab_one.Transparent = false; + this.ab_one.Click += new System.EventHandler(this.ab_one_Click); + // + // ab_last + // + this.ab_last.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_last.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_last.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_last.Image = null; + this.ab_last.Location = new System.Drawing.Point(142, 530); + this.ab_last.Name = "ab_last"; + this.ab_last.NoRounding = false; + this.ab_last.Size = new System.Drawing.Size(81, 40); + this.ab_last.TabIndex = 4; + this.ab_last.Text = "上一幅"; + this.ab_last.Transparent = false; + this.ab_last.Click += new System.EventHandler(this.ab_last_Click); + // + // ab_next + // + this.ab_next.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_next.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_next.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_next.Image = null; + this.ab_next.Location = new System.Drawing.Point(337, 530); + this.ab_next.Name = "ab_next"; + this.ab_next.NoRounding = false; + this.ab_next.Size = new System.Drawing.Size(81, 40); + this.ab_next.TabIndex = 5; + this.ab_next.Text = "下一幅"; + this.ab_next.Transparent = false; + this.ab_next.Click += new System.EventHandler(this.ab_next_Click); + // + // ab_atLast + // + this.ab_atLast.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_atLast.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_atLast.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_atLast.Image = null; + this.ab_atLast.Location = new System.Drawing.Point(445, 530); + this.ab_atLast.Name = "ab_atLast"; + this.ab_atLast.NoRounding = false; + this.ab_atLast.Size = new System.Drawing.Size(81, 40); + this.ab_atLast.TabIndex = 6; + this.ab_atLast.Text = "最后"; + this.ab_atLast.Transparent = false; + this.ab_atLast.Click += new System.EventHandler(this.ab_atLast_Click); + // + // lb_lable + // + this.lb_lable.Location = new System.Drawing.Point(257, 530); + this.lb_lable.Name = "lb_lable"; + this.lb_lable.Size = new System.Drawing.Size(64, 42); + this.lb_lable.TabIndex = 7; + this.lb_lable.Text = "0/0"; + // + // ab_saveTif + // + this.ab_saveTif.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_saveTif.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_saveTif.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_saveTif.Image = null; + this.ab_saveTif.Location = new System.Drawing.Point(355, 590); + this.ab_saveTif.Name = "ab_saveTif"; + this.ab_saveTif.NoRounding = false; + this.ab_saveTif.Size = new System.Drawing.Size(123, 40); + this.ab_saveTif.TabIndex = 8; + this.ab_saveTif.Text = "另存为单帧TIF"; + this.ab_saveTif.Transparent = false; + this.ab_saveTif.Click += new System.EventHandler(this.ab_saveTif_Click); + // + // ab_close + // + this.ab_close.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_close.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_close.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_close.Image = null; + this.ab_close.Location = new System.Drawing.Point(511, 590); + this.ab_close.Name = "ab_close"; + this.ab_close.NoRounding = false; + this.ab_close.Size = new System.Drawing.Size(123, 40); + this.ab_close.TabIndex = 9; + this.ab_close.Text = "关闭"; + this.ab_close.Transparent = false; + this.ab_close.Click += new System.EventHandler(this.ab_close_Click); + // + // ab_open_cur_tif + // + this.ab_open_cur_tif.Cursor = System.Windows.Forms.Cursors.Hand; + this.ab_open_cur_tif.Customization = "7e3t//Ly8v/r6+v/5ubm/+vr6//f39//p6en/zw8PP8UFBT/gICA/w=="; + this.ab_open_cur_tif.Font = new System.Drawing.Font("Segoe UI", 9F); + this.ab_open_cur_tif.Image = null; + this.ab_open_cur_tif.Location = new System.Drawing.Point(665, 590); + this.ab_open_cur_tif.Name = "ab_open_cur_tif"; + this.ab_open_cur_tif.NoRounding = false; + this.ab_open_cur_tif.Size = new System.Drawing.Size(123, 40); + this.ab_open_cur_tif.TabIndex = 10; + this.ab_open_cur_tif.Text = "打开当前帧"; + this.ab_open_cur_tif.Transparent = false; + this.ab_open_cur_tif.Click += new System.EventHandler(this.ab_open_cur_tif_Click); + // + // cb_path + // + this.cb_path.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_path.FormattingEnabled = true; + this.cb_path.Location = new System.Drawing.Point(93, 12); + this.cb_path.Name = "cb_path"; + this.cb_path.Size = new System.Drawing.Size(632, 23); + this.cb_path.TabIndex = 11; + // + // MultiImageForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.LightGray; + this.ClientSize = new System.Drawing.Size(818, 642); + this.Controls.Add(this.cb_path); + this.Controls.Add(this.ab_open_cur_tif); + this.Controls.Add(this.ab_close); + this.Controls.Add(this.ab_saveTif); + this.Controls.Add(this.lb_lable); + this.Controls.Add(this.ab_atLast); + this.Controls.Add(this.ab_next); + this.Controls.Add(this.ab_last); + this.Controls.Add(this.ab_one); + this.Controls.Add(this.pb_image); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; + this.Name = "MultiImageForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "序列图像管理"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.MultiImageForm_FormClosed); + ((System.ComponentModel.ISupportInitialize)(this.pb_image)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private AntdUI.Label label1; + private System.Windows.Forms.PictureBox pb_image; + private ReaLTaiizor.Controls.AirButton ab_one; + private ReaLTaiizor.Controls.AirButton ab_last; + private ReaLTaiizor.Controls.AirButton ab_next; + private ReaLTaiizor.Controls.AirButton ab_atLast; + private AntdUI.Label lb_lable; + private ReaLTaiizor.Controls.AirButton ab_saveTif; + private ReaLTaiizor.Controls.AirButton ab_close; + private ReaLTaiizor.Controls.AirButton ab_open_cur_tif; + private System.Windows.Forms.ComboBox cb_path; + } +} \ No newline at end of file diff --git a/src/PBAnaly/UI/MultiImageForm.cs b/src/PBAnaly/UI/MultiImageForm.cs new file mode 100644 index 0000000..f8df66b --- /dev/null +++ b/src/PBAnaly/UI/MultiImageForm.cs @@ -0,0 +1,169 @@ +using AntdUI; +using ImageMagick; +using OpenCvSharp.Flann; +using PBAnaly.Module; +using SixLabors.ImageSharp; +using SixLabors.ImageSharp.PixelFormats; +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; + +namespace PBAnaly.UI +{ + public partial class MultiImageForm : AntdUI.BaseForm + { + public SixLabors.ImageSharp.Image curImage; + private string path; + private int pindex = 0; + private List> imageList = new List>(); + public MultiImageForm(string _path) + { + InitializeComponent(); + this.path = _path; + cb_path.Items.Add(path); + cb_path.SelectedIndex = 0; + ReadTiff(); + } + private void ReadTiff() + { + imageList.Clear(); + using (MagickImageCollection images = new MagickImageCollection(path)) + { + Console.WriteLine($"图像包含 {images.Count} 帧"); + + + + // 遍历每一帧图像 + for (int i = 0; i < images.Count; i++) + { + // 获取当前帧图像(MagickImage) + MagickImage magickImage = (MagickImage)images[i]; + + // 使用 MemoryStream 将 Magick.NET 图像转换为 ImageSharp 图像 + using (MemoryStream ms = new MemoryStream()) + { + // 将 Magick.NET 图像保存到内存流 + magickImage.Write(ms); + ms.Seek(0, SeekOrigin.Begin); + + // 使用 ImageSharp 从内存流中加载图像 + SixLabors.ImageSharp.Image image = SixLabors.ImageSharp.Image.Load(ms); + imageList.Add(image); + + } + } + + if (imageList.Count > 0) + { + pindex = 0; + var bitmap = util.ConvertL16ToBitmap(imageList[0]); + pb_image.Image = bitmap; + lb_lable.Text = $"{1}/{imageList.Count}"; + } + + } + } + + private void ab_one_Click(object sender, EventArgs e) + { + pindex = 0; + RefreshImage(pindex); + } + private void ab_last_Click(object sender, EventArgs e) + { + if (pindex <= 0) return; + + pindex--; + RefreshImage(pindex); + } + + private void ab_next_Click(object sender, EventArgs e) + { + if (pindex >= imageList.Count-1) return; + pindex++; + RefreshImage(pindex); + } + private void ab_atLast_Click(object sender, EventArgs e) + { + pindex = imageList.Count -1; + RefreshImage(pindex); + } + private void RefreshImage(int index) + { + if (imageList.Count > 0) + { + var bitmap = util.ConvertL16ToBitmap(imageList[index]); + pb_image.Image = bitmap; + + lb_lable.Text = $"{index+1}/{imageList.Count}"; + } + } + + private void ab_close_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + } + + private void ab_open_cur_tif_Click(object sender, EventArgs e) + { + if (pindex < imageList.Count && pindex >= 0) + { + curImage = imageList[pindex]; + } + + DialogResult = DialogResult.OK; + + } + + private void ab_saveTif_Click(object sender, EventArgs e) + { + if (pindex < imageList.Count && pindex>=0) + { + using (SaveFileDialog saveFileDialog = new SaveFileDialog()) + { + // 设置文件类型过滤器,确保用户只能选择 TIFF 文件 + saveFileDialog.Filter = "TIFF 文件 (*.tif)|*.tif"; + // 显示保存文件对话框 + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + string outputPath = saveFileDialog.FileName; + + // 调用保存方法 + SaveAsTiff(imageList[pindex], outputPath); + MessageBox.Show("图像已成功保存!", "保存成功", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + } + } + + // 使用 Magick.NET 将 ImageSharp 图像保存为 TIFF 格式 + static void SaveAsTiff(Image image, string outputPath) + { + // 将 ImageSharp 图像转换为 MagickImage + using (var ms = new MemoryStream()) + { + // 使用 ImageSharp 将图像保存到内存流 + image.Save(ms, new SixLabors.ImageSharp.Formats.Png.PngEncoder()); + ms.Seek(0, SeekOrigin.Begin); + + // 使用 Magick.NET 从内存流加载图像 + using (MagickImage magickImage = new MagickImage(ms)) + { + // 设置图像的格式为 TIF 并保存 + magickImage.Format = MagickFormat.Tif; + magickImage.Write(outputPath); + } + } + } + + private void MultiImageForm_FormClosed(object sender, FormClosedEventArgs e) + { + if (this.DialogResult != DialogResult.OK) + { + this.DialogResult = DialogResult.Cancel; + } + + } + } +} diff --git a/src/PBAnaly/UI/MultiImageForm.resx b/src/PBAnaly/UI/MultiImageForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/src/PBAnaly/UI/MultiImageForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file