Delphi 类似于html的颜色

Delphi 类似于html的颜色,delphi,colors,Delphi,Colors,我必须阅读一些在rgb(ex rgb(255,0,0)-->红色)中带有文本颜色定义的HTML,但我想在HTML代码中搜索所有类似颜色(ex rgb(240,20,20)-->类似于红色),或另一种类似于rgb(223,12,5)的颜色。我尝试在COLORREF中以这种模式转换它: col := RGB(240, 20, 20) --> result = 1316080 col := RGB(255, 0, 0) --> result = 255 但这不是正确的方法…你有没有

我必须阅读一些在
rgb(ex rgb(255,0,0)-->红色)
中带有文本颜色定义的HTML,但我想在HTML代码中搜索所有类似颜色
(ex rgb(240,20,20)-->类似于红色)
,或另一种类似于
rgb(223,12,5)
的颜色。我尝试在
COLORREF
中以这种模式转换它:

col := RGB(240, 20, 20) --> result = 1316080

col := RGB(255,  0,  0) --> result = 255
但这不是正确的方法…你有没有任何想法来获得类似颜色的连续值(范围)


谢谢

我用以下方法解决了一个类似的任务

1) 我构建了一个包含RGB组件的结构,用于首选颜色空间。它可以是标准的
TColor
值,也可以是您想要使用Wiki中的颜色定义(我使用了后者)。所以我用了一些类似于:
TArray
的颜色

2) 分析了颜色空间中要分配给颜色的颜色的颜色RGB组件-获取
red1、green1、blue1

3) 对于每种颜色,我计算了与颜色空间中颜色的距离,如下所示:

dbl_test_red = Sqr(red - red1);
dbl_test_green = Sqr(green - green1);
dbl_test_blue = Sqr(blue - blue1);
distance := dbl_test_blue + dbl_test_green + dbl_test_red;
最小距离将对应于最近的颜色。
该算法没有考虑alpha通道,但对我来说已经足够好了。

请不要让我们为您解决问题。向我们展示你是如何尝试自己解决问题的,然后向我们展示结果到底是什么,告诉我们为什么你觉得它不起作用为什么使用二次而不是线性?为什么使用浮点运算而不是整数运算?与其添加答案,不如参考众多答案完美的副本中的一个。需要使用二次型来避免负值——这是在多维空间中查找两点之间距离的常用方法。这里不需要浮点,你是对的-我的解决方案是用Java编写的,看起来像
double dbl_test_red=Math.pow(red-red1,2.0)不需要平方来避免负值。您可以使用abs()。你为什么不看这些复制品呢。米艾米,我认为你的是个好主意!!!但是有一个信息…为什么你不使用3d空间中两点之间的距离公式Sqr((x1-x2)^2+(y1-y2)^2+(z1-z2)^2)?我发现这篇维基百科文章()发展了你对颜色距离的想法…你认为使用欧利西亚段落的最后一个公式好吗?