石鑫华视觉 手机微信QQ:13450001061

图像编程

LabVIEW如何将U32颜色值转换为RGB表示的颜色分量值

文章来源:石鑫华视觉网时间:2022-09-06 11:23:09 点击:293

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函数即可:

image.png

IMAQ IntegerToColorValue在程序框图中的位置

image.png

IMAQ IntegerToColorValue函数的功能与接线端

下面来看一个实例:

image.png

IMAQ IntegerToColorValue函数将U32值转换成RGB分量模式

    函数使用相当简单,只需要输入相应的颜色值即可,U32 value接线端创建常量或输入控件后,默认是16进制输入的。函数可以针对单个的U32值、U32的一维数组、U32的二维数组进行转换。

首页
84162741QQ
联系