在C#中将RGB颜色转换为最接近的ACI颜色

Hen*_*ger 6 c# rgb colors autocad dxf

我目前正在编写一个与dxf文件交互的程序.因此,我需要一个采用RGB颜色值的例程,并在AutoCAD颜色索引(ACI)中返回最接近的颜色

有人有一些代码或一个例子如何做到这一点?如果它在C#中会很好,但它没有必要.

提前致谢.

And*_*ren 5

从某些来源获取所有ACI颜色的RGB值(例如http://www.jtbworld.com/lisp/DisplayColorProperties.htm)并创建ACI颜色数组.要通过索引获取ACI颜色,只需从该列表中选择颜色即可.

要从RGB执行"最接近"匹配向后查找,只需对该数组进行传递并返回最小距离的颜色(例如,通过检查3个颜色通道的平方距离:如果您的颜色是r,g,b和aci颜色是R,G,B然后是距离

dist = (r-R)*(r-R) + (g-G)*(g-G) + (b-B)*(b-B);
Run Code Online (Sandbox Code Playgroud)

ACI阵列中具有最小dist的颜色是与r,g,b最接近的匹配.