LabVIEW如何将U32颜色值转换为RGB表示的颜色分量值
在很多软件中,一种颜色值,通常使用无符号的32位整形来表示,如xFFFFFF(白)、x000000(黑)这样的值,使用这种方式表示时,一种颜色只需要一个值即可表示。而一般我们认知颜色,可能是需要使用RGB三个U8分量来表示,当然也可能是HSL、HIS等颜色模式。这时候就需要将一个值的U32转换成三个值的U8来表示。有时候需要将颜色值转换成对应的三色的RGB值。
U32的一个值,,其实可以认为是RGB三个值拼接起来的,因为颜色值的格式是固定的,使用16进制时,就是6位来表示的。因此高2位表示了红色、中两位表示了绿色、低两位表示蓝色。如xD5FF00这样的黄色,其RGB分量就分别是十六进制的xD5、xFF、x00,即十进制的213、255、0。如果没有相应的函数,只发将U32值转换成16进制的字符串,然后按2位拆分,再转换成10进制数值就可以得到RGB值。当然,在NI VISION中是有现成的U32转换成RGB值函数的。在这里使用IMAQ IntegerToColorValue函数即可:
IMAQ IntegerToColorValue在程序框图中的位置
IMAQ IntegerToColorValue函数的功能与接线端
下面来看一个实例:
IMAQ IntegerToColorValue函数将U32值转换成RGB分量模式
函数使用相当简单,只需要输入相应的颜色值即可,U32 value接线端创建常量或输入控件后,默认是16进制输入的。函数可以针对单个的U32值、U32的一维数组、U32的二维数组进行转换。