自动加载测温区和温差图

This commit is contained in:
zqm
2026-01-07 13:38:28 +08:00
parent 1ae158bdd6
commit 490f087dc1

View File

@@ -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;
// 添加到数据列表