[MS CE Native]TBGR, RGB, colorIndex之间如何转换?

TBGR, RGB, colorIndex相互之间如何转换?

Parents
  • MicroStation中的颜色系统较为复杂。最基础的是一个色表(ColorTable),它由0~255个索引色(就是你说的colorIndex)组成,每个索引色对应于一个RGB(或BGR),同时元素也支持支持真彩色或通过一个色簿(ColorBook)指定颜色。

    ①colorIndex到TBGR(T应该表示是颜色透明度,T=0表示不透明,BGR当然就是表示蓝、绿、红三原色了)或RGB的方法是:DgnColorMap::GetFile获得当前文件的颜色映射表,然后调用其下的GetColor(参数就是colorIndex)可获得IntColorDef联合体,其中的m_int就是TBGR、m_rgb就是RGB。

    ②从TBGR或RGB得到colorIndex:由于RGB色会有256的三次方组合,只有极少部分被精确对应到了ColorTable中,所以,从RGB到colorTable的转换大多数情况下可能是非精确的,只能是去匹配一个近似颜色。请调用DgnColorMap下的FindClosestMatch从一个IntColorDef得到一个colorIndex。至于如何从RGB得到IntColorDef,看一下IntColorDef的SetColors函数就知道了。



    Answer Verified By: 周谦益 Zhou Qianyi 

Reply Children
No Data