如何把RGB函数的返回值还原成Red、Green、Blue

本文详细介绍了RGB函数的三种实现方法,包括直接计算红色、绿色和蓝色通道的值,使用十六进制转换来获取颜色分量,以及通过位运算来分离颜色通道。
RGB函数就是(1*R+256*G+65536*B)


方法一:
colour=RGB(red,green,blue)
red=colour And  &HFF  
green= (Color  And  65280)  \  256  
blue=(Color  And  &HFF0000)  \  65536

方法二:  
Option  Explicit  
 
Private  Sub  Command1_Click()  
GetRGB  RGB(16,  39,  0)  
End  Sub  
Sub  GetRGB(ByVal  color  As  Long,  Optional  ByRef  red  As  Byte,  Optional  ByRef  green  As  Byte,  Optional  ByRef  blue  As  Byte)  
Dim  temp  As  String  
temp  =  Right("000000"  &  Hex(color),  6)  
red  =  "&H"  &  Right(temp,  2)  
green  =  "&H"  &  Mid(temp,  3,  2)  
blue  =  "&H"  &  Left(temp,  2)  
End  Sub  
 
---------------------------------------------------------------  
方法三:  
R  =  Color  And  &HFF&                    '通过和16进制数FF进行“与”操作取得低8位  
G=(Color\256)  And  &HFF&            '先右移8位,再取低8位,相当于原来的中间8位  
B  =  Col  \  65536          '右移16位,得到的8位,相当于原来的高8位  
 
还有一种写法:  
R  =  Color  Mod  256  
G  =  (Color\256)  Mod  256  
B  =  Color  \65536  
这种写法和上面的区别在于使用了“取余数”运算符Mod,结果和上面一样

转载于:https://www.cnblogs.com/fxdwz/archive/2006/05/22/406607.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值