From 490f087dc1f5a19ad0d97fd01a6616df37921844 Mon Sep 17 00:00:00 2001 From: zqm Date: Wed, 7 Jan 2026 13:38:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8A=A0=E8=BD=BD=E6=B5=8B?= =?UTF-8?q?=E6=B8=A9=E5=8C=BA=E5=92=8C=E6=B8=A9=E5=B7=AE=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CS/Framework4.0/Toprie/Toprie/Setting.cs | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs index 6f1cb58..c3d2775 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Setting.cs @@ -4443,12 +4443,18 @@ namespace JoyD.Windows.CS try { double temperature = Convert.ToDouble(parts[0]); - string colorHex = parts[1].TrimStart('#'); - Color color = Color.FromArgb( - Convert.ToInt32(colorHex.Substring(0, 2), 16), - Convert.ToInt32(colorHex.Substring(2, 2), 16), - Convert.ToInt32(colorHex.Substring(4, 2), 16) - ); + // 兼容两种颜色格式:十六进制颜色代码和颜色名称 + Color color; + try + { + // 首先尝试解析十六进制颜色代码 + color = ColorTranslator.FromHtml(parts[1]); + } + catch + { + // 如果解析失败,尝试解析颜色名称 + color = Color.FromName(parts[1]); + } // 添加到温差图例列表 int rowIndex = dataGridViewTempDiff.Rows.Add(); @@ -4685,8 +4691,18 @@ namespace JoyD.Windows.CS int.TryParse(parts[3], out int width); int.TryParse(parts[4], out int height); - // 解析颜色 - Color color = Color.FromName(parts[5]); + // 兼容两种颜色格式:十六进制颜色代码和颜色名称 + Color color; + try + { + // 首先尝试解析十六进制颜色代码 + color = ColorTranslator.FromHtml(parts[5]); + } + catch + { + // 如果解析失败,尝试解析颜色名称 + color = Color.FromName(parts[5]); + } // 创建区域信息 regions.Add(new RegionInfo @@ -4799,8 +4815,8 @@ namespace JoyD.Windows.CS reader.ReadLine(); // 跳过表头行 continue; } - // 识别温差像素数据部分 - else if (line == "温差像素数据") + // 识别像素温度数据部分 + else if (line == "像素温度数据") { readingLegend = false; readingPixelData = true; @@ -4828,8 +4844,18 @@ namespace JoyD.Windows.CS // 解析温差值和颜色 if (double.TryParse(parts[0].Replace("°C", ""), out double tempValue)) { - // 使用ColorTranslator.FromHtml正确解析十六进制颜色代码 - Color color = ColorTranslator.FromHtml(parts[1]); + // 兼容两种颜色格式:十六进制颜色代码和颜色名称 + Color color; + try + { + // 首先尝试解析十六进制颜色代码 + color = ColorTranslator.FromHtml(parts[1]); + } + catch + { + // 如果解析失败,尝试解析颜色名称 + color = Color.FromName(parts[1]); + } tempToColorMap[tempValue] = color; // 添加到数据列表