注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
如何将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在程序框图中的位置
IMAQIntegerToColorValue在程序框图中的位置
IMAQ IntegerToColorValue函数的功能与接线端
IMAQIntegerToColorValue函数的功能与接线端 下面来看一个实例:
IMAQ IntegerToColorValue函数将U32值转换成RGB分量模式
IMAQIntegerToColorValue函数将U32值转换成RGB分量模式 函数使用相当简单,只需要输入相应的颜色值即可,U32 value接线端创建常量或输入控件后,默认是16进制输入的。函数可以针对单个的U32值、U32的一维数组、U32的二维数组进行转换。 LabVIEW2014SP1版下载
上面提到的一种不用VISION的方式实现见下面的帖子: LabVIEW将表示颜色的U32值转换为RGB对应的分量值LabVIEW实现方式
|