修改检测区功能
This commit is contained in:
@@ -2546,7 +2546,8 @@ namespace JoyD.Windows.CS.Toprie
|
|||||||
int y = int.Parse(parts[2]);
|
int y = int.Parse(parts[2]);
|
||||||
int width = int.Parse(parts[3]);
|
int width = int.Parse(parts[3]);
|
||||||
int height = int.Parse(parts[4]);
|
int height = int.Parse(parts[4]);
|
||||||
Color color = Color.FromName(parts[5]);
|
// 解析检测区颜色,支持颜色名称和十六进制颜色代码
|
||||||
|
Color color = CommonUtils.ParseColor(parts[5]);
|
||||||
|
|
||||||
_detectionZone = new DetectionZone
|
_detectionZone = new DetectionZone
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,6 +4,46 @@ using System.Drawing;
|
|||||||
|
|
||||||
namespace JoyD.Windows.CS
|
namespace JoyD.Windows.CS
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 通用工具类,包含各种通用方法
|
||||||
|
/// </summary>
|
||||||
|
public static class CommonUtils
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 通用颜色解析方法,支持颜色名称和十六进制颜色代码
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="colorString">颜色字符串,可以是颜色名称或十六进制代码</param>
|
||||||
|
/// <param name="defaultColor">解析失败时使用的默认颜色</param>
|
||||||
|
/// <returns>解析后的Color对象</returns>
|
||||||
|
public static Color ParseColor(string colorString, Color defaultColor = default(Color))
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(colorString))
|
||||||
|
{
|
||||||
|
// 如果默认颜色未指定或为空,使用黑色
|
||||||
|
return defaultColor == default(Color) ? Color.Black : defaultColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 首先尝试解析十六进制颜色代码
|
||||||
|
return ColorTranslator.FromHtml(colorString);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 如果解析失败,尝试解析颜色名称
|
||||||
|
return Color.FromName(colorString);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// 如果都失败,返回默认颜色
|
||||||
|
return defaultColor == default(Color) ? Color.Black : defaultColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 检测区配置类,用于存储检测区的信息
|
/// 检测区配置类,用于存储检测区的信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -2774,8 +2774,10 @@ namespace JoyD.Windows.CS
|
|||||||
Rectangle controlDetectionRect = ImageRectangleToControlRectangle(detectionRect);
|
Rectangle controlDetectionRect = ImageRectangleToControlRectangle(detectionRect);
|
||||||
|
|
||||||
// 高亮显示检测区
|
// 高亮显示检测区
|
||||||
using (Pen pen = new Pen(_tempDetectionZone.Color, 3))
|
using (Pen pen = new Pen(_tempDetectionZone.Color, 2))
|
||||||
{
|
{
|
||||||
|
// 设置为虚线边框,与进入前的虚线样式保持一致,确保可见
|
||||||
|
pen.DashStyle = DashStyle.Dash;
|
||||||
// 设置绘制质量为无抗锯齿,确保边界清晰
|
// 设置绘制质量为无抗锯齿,确保边界清晰
|
||||||
e.Graphics.SmoothingMode = SmoothingMode.None;
|
e.Graphics.SmoothingMode = SmoothingMode.None;
|
||||||
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
|
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||||
@@ -2825,11 +2827,9 @@ namespace JoyD.Windows.CS
|
|||||||
{
|
{
|
||||||
// 计算检测区在控件中的坐标和大小
|
// 计算检测区在控件中的坐标和大小
|
||||||
// 创建虚线画笔
|
// 创建虚线画笔
|
||||||
using (Pen pen = new Pen(Color.Black, 2))
|
using (Pen pen = new Pen(_detectionZone.Color, 2))
|
||||||
{
|
{
|
||||||
pen.DashStyle = DashStyle.Dash;
|
pen.DashStyle = DashStyle.Dash;
|
||||||
// 绘制检测区虚线矩形
|
|
||||||
Rectangle destRect = new Rectangle(0, 0, picBoxTemp.ClientSize.Width, picBoxTemp.ClientSize.Height);
|
|
||||||
// 设置绘制质量为无抗锯齿,确保边界清晰
|
// 设置绘制质量为无抗锯齿,确保边界清晰
|
||||||
e.Graphics.SmoothingMode = SmoothingMode.None;
|
e.Graphics.SmoothingMode = SmoothingMode.None;
|
||||||
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
|
e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
|
||||||
@@ -3660,17 +3660,8 @@ namespace JoyD.Windows.CS
|
|||||||
int.TryParse(parts[3], out int width);
|
int.TryParse(parts[3], out int width);
|
||||||
int.TryParse(parts[4], out int height);
|
int.TryParse(parts[4], out int height);
|
||||||
|
|
||||||
// 解析颜色
|
// 解析颜色,使用通用颜色解析方法,支持颜色名称和十六进制颜色代码
|
||||||
Color color;
|
Color color = CommonUtils.ParseColor(parts[5], Color.Red);
|
||||||
try
|
|
||||||
{
|
|
||||||
color = ColorTranslator.FromHtml(parts[5]);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// 如果颜色解析失败,使用默认颜色
|
|
||||||
color = Color.Red;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建新的测温区并添加到列表
|
// 创建新的测温区并添加到列表
|
||||||
// 从CSV文件第一列获取原始索引值
|
// 从CSV文件第一列获取原始索引值
|
||||||
@@ -4892,16 +4883,8 @@ namespace JoyD.Windows.CS
|
|||||||
double temperature = Convert.ToDouble(parts[0]);
|
double temperature = Convert.ToDouble(parts[0]);
|
||||||
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
||||||
Color color;
|
Color color;
|
||||||
try
|
// 使用通用颜色解析方法,支持颜色名称和十六进制颜色代码
|
||||||
{
|
color = CommonUtils.ParseColor(parts[1]);
|
||||||
// 首先尝试解析十六进制颜色代码
|
|
||||||
color = ColorTranslator.FromHtml(parts[1]);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// 如果解析失败,尝试解析颜色名称
|
|
||||||
color = Color.FromName(parts[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加到温差图例列表
|
// 添加到温差图例列表
|
||||||
int rowIndex = dataGridViewTempDiff.Rows.Add();
|
int rowIndex = dataGridViewTempDiff.Rows.Add();
|
||||||
@@ -5387,16 +5370,8 @@ namespace JoyD.Windows.CS
|
|||||||
|
|
||||||
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
||||||
Color color;
|
Color color;
|
||||||
try
|
// 使用通用颜色解析方法,支持颜色名称和十六进制颜色代码
|
||||||
{
|
color = CommonUtils.ParseColor(parts[5]);
|
||||||
// 首先尝试解析十六进制颜色代码
|
|
||||||
color = ColorTranslator.FromHtml(parts[5]);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// 如果解析失败,尝试解析颜色名称
|
|
||||||
color = Color.FromName(parts[5]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建区域信息
|
// 创建区域信息
|
||||||
regions.Add(new RegionInfo
|
regions.Add(new RegionInfo
|
||||||
@@ -5527,17 +5502,8 @@ namespace JoyD.Windows.CS
|
|||||||
if (double.TryParse(parts[0].Replace("°C", ""), out double tempValue))
|
if (double.TryParse(parts[0].Replace("°C", ""), out double tempValue))
|
||||||
{
|
{
|
||||||
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
// 兼容两种颜色格式:十六进制颜色代码和颜色名称
|
||||||
Color color;
|
// 使用通用颜色解析方法,支持颜色名称和十六进制颜色代码
|
||||||
try
|
Color color = CommonUtils.ParseColor(parts[1]);
|
||||||
{
|
|
||||||
// 首先尝试解析十六进制颜色代码
|
|
||||||
color = ColorTranslator.FromHtml(parts[1]);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
// 如果解析失败,尝试解析颜色名称
|
|
||||||
color = Color.FromName(parts[1]);
|
|
||||||
}
|
|
||||||
tempToColorMap[tempValue] = color;
|
tempToColorMap[tempValue] = color;
|
||||||
|
|
||||||
// 添加到数据列表
|
// 添加到数据列表
|
||||||
|
|||||||
Reference in New Issue
Block a user