相似的颜色成html

时间:2018-10-25 14:36:35

标签: delphi colors

我必须阅读rgb (ex rgb(255,0,0) --> red)中具有文本颜色定义的一些HTML,但是我想在HTML代码中搜索所有类似颜色(ex rgb(240, 20, 20) --> similar to red)或与rgb(223,12,5)…类似的其他颜色,我尝试进行转换以此模式在COLORREF中显示:

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

col := RGB(255,  0,  0) --> result = 255

但这不是正确的方法……您有任何想法让连续的值(范围)具有相似的颜色吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我通过以下方式解决了类似的任务。

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

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通道,但对我来说效果很好。