From 0a70f99e51b0ea0c83288213e3b1f7904d78ede0 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 18 七月 2024 17:52:46 +0800 Subject: [PATCH] 创建PNG --- SimuTools/FrmMain.cs | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 100 insertions(+), 8 deletions(-) diff --git a/SimuTools/FrmMain.cs b/SimuTools/FrmMain.cs index c81923b..63e50df 100644 --- a/SimuTools/FrmMain.cs +++ b/SimuTools/FrmMain.cs @@ -1,18 +1,14 @@ 锘縰sing SimuTools.Tools; 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.IO; using System.Windows.Forms; namespace SimuTools { public partial class FrmMain : Form { + private bool flag; + public FrmMain() { InitializeComponent(); @@ -21,6 +17,16 @@ private void FrmMain_Load(object sender, EventArgs e) { LogOut.Info("鍚姩绋嬪簭..."); + try + { + GdalHelper gdal = GdalHelper.Instance; + LogOut.Info("> 鍒濆鍖朑DAL瀹屾垚 <"); + } + catch (Exception ex) + { + LogOut.Error(ex.StackTrace); + ShowErr("GDAL鍒濆鍖栧嚭閿欙細" + ex.Message); + } } private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) @@ -30,22 +36,108 @@ private void btnTerrainPath_Click(object sender, EventArgs e) { + OpenFileDialog dialog = new OpenFileDialog(); + dialog.Filter = "Tif files(*.tif)|*.tif|Tiff files (*.tiff)|*.tiff"; + dialog.RestoreDirectory = true; + string path = this.txtTerrainPath.Text.Trim(); + if (File.Exists(path)) + { + dialog.InitialDirectory = Path.GetDirectoryName(path); + } + + if (dialog.ShowDialog() == DialogResult.OK) + { + this.txtTerrainPath.Text = dialog.FileName; + } } private void btnWaterPath_Click(object sender, EventArgs e) { - + selectFolder(this.txtWaterPath, "姘撮潰"); } private void btnFlowPath_Click(object sender, EventArgs e) { + selectFolder(this.txtFlowPath, "娴侀��"); + } + private void btnOutPath_Click(object sender, EventArgs e) + { + selectFolder(this.txtOutPath, "杈撳嚭"); + } + + private void selectFolder(TextBox tb, string title) + { + using (FolderBrowserDialog dialog = new FolderBrowserDialog()) + { + string path = tb.Text.Trim(); + if (Directory.Exists(path)) + { + dialog.SelectedPath = path; + } + + dialog.Description = "璇烽�夋嫨" + title + "鐩綍..."; + if (dialog.ShowDialog() == DialogResult.OK) + { + tb.Text = dialog.SelectedPath; + } + } } private void btnRun_Click(object sender, EventArgs e) { + string serviceName = this.txtServiceName.Text.Trim(); + string terrainFile = this.txtTerrainPath.Text.Trim(); + string waterPath = this.txtWaterPath.Text.Trim(); + string flowPath = this.txtFlowPath.Text.Trim(); + string outPath = this.txtOutPath.Text.Trim(); + if (string.IsNullOrEmpty(serviceName)) + { + ShowErr("鏈嶅姟鍚嶇О锛岃姹傚繀濉紒"); + return; + } + if (!File.Exists(terrainFile)) + { + ShowErr("鍦板舰鏂囦欢锛岃姹傚繀椤诲瓨鍦紒"); + return; + } + if (!Directory.Exists(waterPath) || !Directory.Exists(flowPath) || !Directory.Exists(outPath)) + { + ShowErr("姘撮潰銆佹祦閫熷拰杈撳嚭鐩綍锛岃姹傚繀椤诲瓨鍦紒"); + return; + } + + if (flag) return; + try + { + flag = true; + LogOut.Info("寮�濮嬭繍琛� >>"); + + outPath = Path.Combine(outPath, serviceName); + if (!Directory.Exists(outPath)) + { + Directory.CreateDirectory(outPath); + } + + Tools.Handle.Run(terrainFile, waterPath, flowPath, outPath); + + flag = false; + LogOut.Info("杩愯缁撴潫 <<"); + MessageBox.Show("杩愯缁撴潫锛�", "鎻愮ず", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception ex) + { + flag = false; + LogOut.Error(ex.StackTrace); + ShowErr("杩愯鍑洪敊锛�" + ex.Message); + } + } + + private void ShowErr(string message) + { + MessageBox.Show(message, "鎻愮ず", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } -- Gitblit v1.9.3