/// <summary> /// Converts the current composite image to grayscale. /// </summary> private void mnuGrayscale_Click(object sender, EventArgs e) { addBackgroundOperation( GraphicOperations.ApplyGrayscaleFilter((Bitmap)pbxDisplay.Image), "Applying grayscale filter", (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; } ); }
/// <summary> /// 清除联动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var graph = new GraphicOperations(); graph.DoClearDrawing(GraphDrawing.Mapobj); GraphDrawing gr = new GraphDrawing(); gr.Jsonstr = ""; }
/// <summary> /// 绘制多边形联动 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGraphDuoBianXing_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var graph = new GraphicOperations(); string result = graph.DoOtherDrawingGraphics(GraphDrawing.Mapobj); if (!string.IsNullOrWhiteSpace(result)) { DevExpress.XtraEditors.XtraMessageBox.Show(result, "提示"); return; } graph.DoDrawingPolygon(GraphDrawing.Mapobj); }
private void barBtnSave_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (this.gridLookUpEdit.EditValue == null) { XtraMessageBox.Show("请选择大数据分析模型", "消息"); return; } if (groupControlForm.Controls.Count == 0) { XtraMessageBox.Show("请选择大数据分析模型", "消息"); return; } string daID = this.gridLookUpEdit.EditValue.ToString(); //是ookUpEdit.Properties.ValueMember的值 EmergencyLinkageConfigBusinessModel emergencyLinkageConfigBusinessModel = new EmergencyLinkageConfigBusinessModel(); emergencyLinkageConfigBusinessModel.AnalysisModelId = daID; JC_EmergencyLinkageConfigInfo emergencyLinkageConfigInfo = new JC_EmergencyLinkageConfigInfo(); if (groupControlForm.Controls.Count > 0) { //保存联动 var graph = new GraphicOperations(); string result = graph.DoSaveDrawing(GraphDrawing.Mapobj); if (string.IsNullOrWhiteSpace(result)) { XtraMessageBox.Show("请配置应急联动范围", "消息"); return; } else { emergencyLinkageConfigInfo.CreatorId = UserID; emergencyLinkageConfigInfo.CreatorName = UserName; emergencyLinkageConfigInfo.Id = Guid.NewGuid().ToString(); emergencyLinkageConfigInfo.AnalysisModelId = daID; emergencyLinkageConfigInfo.Coordinate = result; } } emergencyLinkageConfigBusinessModel.EmergencyLinkageConfigInfo = emergencyLinkageConfigInfo; //保存配置信息 string error = emergencyLinkageBusiness.AddEmergencyLinkageConfig(emergencyLinkageConfigBusinessModel); if (error == "100") { XtraMessageBox.Show("保存成功", "消息"); OperateLogHelper.InsertOperateLog(16, "应急联动-更新【" + this.gridLookUpEdit.Text + "】," + string.Format("内容:{0}", JSONHelper.ToJSONString(emergencyLinkageConfigBusinessModel)), "应急联动-更新"); } else { XtraMessageBox.Show(error, "消息"); } }
/// <summary> /// Equalizes histograms of bands of the current RGB composite. /// </summary> private void mnuEqualizeHistogram_Click(object sender, EventArgs e) { addBackgroundOperation( GraphicOperations.EqualizeHistogram(new[] { (cmbR.SelectedIndex > 0) ? dataset.Bands[cmbR.SelectedIndex - 1] : null, (cmbG.SelectedIndex > 0) ? dataset.Bands[cmbG.SelectedIndex - 1] : null, (cmbB.SelectedIndex > 0) ? dataset.Bands[cmbB.SelectedIndex - 1] : null }), "Equalizing histogram on the RGB composite.", (ps, pe) => { dgvBands.Refresh(); updateRGBComposite(); }); }
/// <summary> /// Updates the histogram chart if it is marked dirty and is visible. /// </summary> private void maybeUpdateHistogram() { // We check if (!splDisplay.Panel2Collapsed && histogramDirty) { addBackgroundOperation( GraphicOperations.CalculateHistogram(new[] { (cmbR.SelectedIndex > 0) ? dataset.Bands[cmbR.SelectedIndex - 1] : null, (cmbG.SelectedIndex > 0) ? dataset.Bands[cmbG.SelectedIndex - 1] : null, (cmbB.SelectedIndex > 0) ? dataset.Bands[cmbB.SelectedIndex - 1] : null }), "Calculating histogram of the RGB composite.", (ps, pe) => { double[][] data = pe.Result as double[][]; // Bind histogram values to the chart series. chtHistogram.Series["R"].Points.DataBindY(data[0]); chtHistogram.Series["G"].Points.DataBindY(data[1]); chtHistogram.Series["B"].Points.DataBindY(data[2]); histogramDirty = false; }); } }
/// <summary> /// Handles clicking on buttons in the band list. /// Equalizes histogram or selects a single band for grayscale display based on the column /// that was clicked. /// </summary> private void dgvBands_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 2) { addBackgroundOperation( GraphicOperations.EqualizeHistogram(dataset.Bands[e.RowIndex]), String.Format("Equalizing histogram on {0}", dataset.Bands[e.RowIndex].Name), (ps, pe) => { dgvBands.Refresh(); updateRGBComposite(); } ); } else if (e.ColumnIndex == 3) { suspendCompositeUpdate = true; rgbCombos.ForEach(i => i.SelectedIndex = e.RowIndex + 1); suspendCompositeUpdate = false; updateRGBComposite(); } }
/// <summary> /// Updates the RGB composite view. /// </summary> private void updateRGBComposite() { if (dataset == null || suspendCompositeUpdate) { return; } addBackgroundOperation( GraphicOperations.CreateRGBComposite( dataset, cmbR.SelectedIndex - 1, cmbG.SelectedIndex - 1, cmbB.SelectedIndex - 1 ), "Generating RGB composite", (ps, pe) => { pbxDisplay.Image = pe.Result as Bitmap; // Mark histogram chart as dirty and update. histogramDirty = true; maybeUpdateHistogram(); } ); }
/// <summary> /// Loads the form and initializes controls. /// </summary> private void MainForm_Load(object sender, EventArgs e) { // Set up the band list. dgvBands.AutoGenerateColumns = dgvHeaderAttributes.AutoGenerateColumns = dgvEventLog.AutoGenerateColumns = false; dgvEventLog.DataSource = MessageLog.Events; // Add button to band list header for equalizing histograms on all bands. btnHistEqAll = new Button(); Rectangle btnPos = dgvBands.GetCellDisplayRectangle(2, -1, true); btnHistEqAll.Text = ""; btnHistEqAll.Image = ESRIBinaryViewer.Properties.Resources.HistEQ; btnHistEqAll.Size = btnPos.Size; btnHistEqAll.Location = btnPos.Location; btnHistEqAll.Font = new Font(btnHistEqAll.Font.FontFamily, 8); btnHistEqAll.Visible = false; btnHistEqAll.Click += (o, a) => { addBackgroundOperation( GraphicOperations.EqualizeHistogram(dataset.Bands), "Equalizing histograms on all bands of the current dataset.", (ps, pe) => { dgvBands.Refresh(); updateRGBComposite(); } ); }; // Manually reposition & resize the button in the header... EventHandler eh = (o, a) => { Rectangle r = dgvBands.GetCellDisplayRectangle(2, -1, true); btnHistEqAll.Size = r.Size; btnHistEqAll.Location = r.Location; }; // ... on size change or data source change. dgvBands.SizeChanged += eh; dgvBands.DataSourceChanged += eh; dgvBands.DataSourceChanged += (o, a) => { btnHistEqAll.Visible = true; }; dgvBands.Controls.Add(btnHistEqAll); // Set up RGB band selection combo boxes. rgbCombos = new List <ToolStripComboBox>() { cmbR, cmbG, cmbB }; rgbCombos.ForEach(i => { i.SelectedIndexChanged += (o, a) => updateRGBComposite(); i.ComboBox.DataSource = new BindingSource(bandList, ""); i.SelectedIndex = 0; }); // Set up the zoom combo box in the status bar. var zoomItems = pbxDisplay.ZoomFactors.Select( f => { var i = new ToolStripMenuItem(String.Format("{0:0}%", f * 100)); i.Click += (o, a) => { foreach (var mi in (from object obj in i.Owner.Items let mi = obj as ToolStripMenuItem where mi != null select mi)) { mi.Checked = false; if (mi.Text == "100%") { mi.Font = new Font(mi.Font, FontStyle.Bold); mi.Checked = true; } } i.Checked = true; pbxDisplay.CurrentZoom = ddnZoom.DropDownItems.IndexOf(i); }; return(i); } ).ToArray(); ddnZoom.DropDownItems.AddRange(zoomItems); // Hide the histogram panel. splDisplay.Panel2Collapsed = true; splDisplay.Panel2.Hide(); // Set up the custom menu item for applying convolution filters. var convoItem = new ConvolutionFilterMenuItem(); convoItem.FilterApplied += (k) => { addBackgroundOperation( GraphicOperations.ApplyConvolutionFilter((Bitmap)pbxDisplay.Image, k), "Applying convolution filter", (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; } ); }; mnuConvoFilter.DropDownItems.Add(convoItem); // Also set up the custom menu item for applying a median filter. var medianItem = new MedianFilterMenuItem(); medianItem.FilterApplied += (s) => { addBackgroundOperation( GraphicOperations.ApplyMedianFilter((Bitmap)pbxDisplay.Image, s), "Applying median filter", (ps, pe) => { pbxDisplay.Image = (Bitmap)pe.Result; } ); }; mnuMedianFilter.DropDownItems.Add(medianItem); // Compute build timestamp from the assembly version number. var version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version; var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan( TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision) ); // Print welcome banner to the message log. MessageLog.Add(String.Format("ESRIBinaryViewer {0}; built on {1}.", version, buildDateTime)); MessageLog.Add("(C) GPLv3 2013 Barancsuk Ádám <*****@*****.**>"); }
private void GraphicsAdd_Load(object sender, EventArgs e) { try { if (this.Text == "图形编辑") { this.comboBoxType.Enabled = false; this.textGraphName.Enabled = false; if (GraphOpt.getGraphicNowType() == 0) { comboBoxType.SelectedItem = "动态图"; } else if (GraphOpt.getGraphicNowType() == 1) { comboBoxType.SelectedItem = "拓扑图"; } else if (GraphOpt.getGraphicNowType() == 3) { comboBoxType.SelectedItem = "SVG组态图"; } var graphicOperations = new GraphicOperations(); var graphicInfo = graphicOperations.getGraphicDto(GraphOpt.GraphNameNow); if (graphicInfo != null) { if (graphicInfo.Bz3 == "0") { checkEdit1.Checked = true; } else if (graphicInfo.Bz3 == "1" || graphicInfo.Bz3 == "2") { checkEdit2.Checked = true; } if (graphicInfo.Bz4 == "1") { checkEdit3.Checked = true; } else if (graphicInfo.Bz4 == "0") { checkEdit4.Checked = true; } } string graphFileName = "", graphNameNow = GraphOpt.GraphNameNow; this.textGraphName.Text = graphNameNow; string suffixName = graphNameNow.Substring(graphNameNow.LastIndexOf(".") + 1, graphNameNow.Length - graphNameNow.LastIndexOf(".") - 1); if (comboBoxType.SelectedItem.ToString() == "动态图") { if (textGraphName.Text.Contains(".")) { graphFileName = graphNameNow.Substring(0, graphNameNow.LastIndexOf('.')) + "." + suffixName; } else//未输入后缀名时,直接用输入的名称+后缀名 { graphFileName = graphNameNow + "." + suffixName; } } else { graphFileName = graphNameNow; } this.textFileName.Text = Application.StartupPath + "\\mx\\dwg\\" + graphFileName; } } catch (Exception ex) { LogHelper.Error("GraphicsAdd_GraphicsAdd_Load" + ex.Message + ex.StackTrace); } }
public AreaGraphicsAdd(GraphicOperations _graphOpt) { GraphOpt = _graphOpt; InitializeComponent(); }
private void treeList1_MouseClick(object sender, MouseEventArgs e) { DevExpress.XtraTreeList.Nodes.TreeListNode node = null; DevExpress.XtraTreeList.TreeListHitInfo hitInfo; if (e.Button == MouseButtons.Left) { hitInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y)); if (hitInfo.HitInfoType == DevExpress.XtraTreeList.HitInfoType.Cell || hitInfo.HitInfoType == DevExpress.XtraTreeList.HitInfoType.StateImage) { node = treeList1.FocusedNode; if (node != null) { var graph = new GraphicOperations(); var jsonList = new List <PointNameAndDevName>(); if (GISPlatformCenter.Mapobj == null)//找不到对象,直接退出 { return; } string json = graph.DoGetMapPointNameAndDevName(GISPlatformCenter.Mapobj); if (!string.IsNullOrWhiteSpace(json)) { jsonList = Basic.Framework.Common.JSONHelper.ParseJSONString <List <PointNameAndDevName> >(json); } if (node.StateImageIndex == 0) { SetState(node, 1); GetCheckNode(treeList1); if (jsonList != null && jsonList.Count > 0) { if (this.treeList1.Nodes[0].StateImageIndex == 1) { foreach (var item in jsonList) { graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName); } } else { foreach (var item in jsonList) { string devName = this.CheckPoint.Find((x) => { return(x == item.DevName); }); if (!string.IsNullOrWhiteSpace(devName) && !string.IsNullOrWhiteSpace(item.DevName)) { graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName); } } } } } else { SetState(node, 0); SetStateS(node.ParentNode, 0); GetCheckNode(treeList1); if (jsonList != null && jsonList.Count > 0) { if (this.treeList1.Nodes[0].StateImageIndex == 1) { foreach (var item in jsonList) { graph.PointDisplay(GISPlatformCenter.Mapobj, item.PointName); } } else { foreach (var item in jsonList) { string devName = this.CheckPoint.Find((x) => { return(x == item.DevName); }); if (string.IsNullOrWhiteSpace(devName) && !string.IsNullOrWhiteSpace(item.DevName)) { graph.PointHidden(GISPlatformCenter.Mapobj, item.PointName); } } } } } } } } }