㈠ VB6 如何进行颜色转换
首先纠正一下,&HFFFFFFFF不是白色,正确的应该是&HFFFFFF,共三个字节,每个字节分别是红绿蓝三原色的分量值。如果用&HFFFFFFFF(这是四个字节),VB6会报错的。
其次,vbWhite是VB的内部常量,它的值就是&HFFFFFF(也就是十进制的16777215),所以不存在转换的问题。建议尽量使用类似vbWhite、vbRed、vbBlue这样的常量来表示颜色,因为它们很直观,即使不懂编程(但懂点英语)的人也知道它们就是白色、红色、蓝色的意思。
你可以自己在VB6的立即窗口验证一下我上面所述是否正确:
PrintvbWhite'显示结果为16777215
PrintHex(vbWhite)'显示结果为FFFFFF
补充说一下,颜色的多种表示方式,其实它们最终的值都是相等的,并不需要所谓的转换,比如以下是纯蓝色的多种表示方式:
vbBlue
RGB(0,0,255)
&HFF0000
16711680
以上这些表示方式,其实它们的值都是一样的,都是等于16711680,你甚至可以拿它们直接来进行数学运算呢!
vbBlue+RGB(0,0,255)+&HFF0000+16711680=66846720
66846720/4=16711680
如果你是想让一个颜色值分解为红绿蓝三原色分量,可以这样:
color1=vbWhite'这是白色
red=color1Mod&H100'这是红色分量
green=color1&H100Mod&H100'这是绿色分量
blue=color1&H10000'这是蓝色分量
㈡ VB 颜色值十六进制与RGB之间怎样转换
反回RGB数组的一个函数
Public Function ColorRGB(Color As Long) As Byte()
Const ByN As Integer = 256
Const ByN2 As Long = 65536
Dim A(2) As Byte
A(0) = (Color Mod ByN)
A(1) = ((Color Mod ByN2) \ ByN)
A(2) = (Color \ ByN2)
ColorRGB = A
End Function
例如:
Print ColorRGB(&H1111FF)(0) '红色RGB
Print ColorRGB(&H11FF11)(1) '绿色RGB
Print ColorRGB(&HFF1111)(2) '蓝色RGB
都等于255
变回版十六进制更权简单
HEX(RGB(1,1,1))
㈢ VB中HSL怎么转换为RGB
网上找去啊。N多现成的算法,N多现成的代码啊。这个东西。
网络里面就有,怎么不看呢。
HSL→RGB的算法描述。
步骤1:If S=0,表示灰色,定义R,G和B都为L.
步骤2:否则,测试L:
If L<0.5,temp2=L*(1.0+S)
If L>=0.5,temp2=L+S-L*S
步骤3:temp1=2.0*-temp2
步骤4:把H转换到0~1。
步骤5:对于R,G,B,计算另外的临时值temp3。方法如下:
for R, temp3=H+1.0/3.0
for G, temp3=H
for B, temp3=H-1.0/3.0
if temp3<0, temp3=temp3+1.0
if temp3>1, temp3=temp3-1.0
步骤6:对于R,G,B做如下测试:
If 6.0*temp3<1,color=temp1+(temp2-temp1)*6.0*temp3
Else if 2.0*temp3<1,color=temp2
Else if 3.0*temp3<2,
color=temp1+(temp2-temp1)*((2.0/3.0)-temp3)*6.0
Else color=temp1
㈣ VB_如何将颜色转换为RGB
是6位的十六进制的数吧?
前2位换算成十进制 是R
中间2位换算成十进制 是G
最后2位换算成十进制 是B