A. 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
B. 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))
C. VB如何使用十六进制的颜色
text1.forecolor=&HD1EEEE&
D. 求VB中颜色代码
使用颜色常数:Form1背景色=虚拟现实。
背景色=vbBlue'蓝色。
背景色=vbWhite'白色。
使用QBColor函数:form1。背景色=QBColor(n)个值,从0到15。
使用RGB函数:form1。背景色=RGB(r,g,b)'r,b,值分别为0到255。
(4)vb16进制颜色转rgb代码扩展阅读:
VbGreen & HFF00 green
VbYellow & HFFFF黄色
VbBlue & HFF0000蓝色
vb品红色& HFF00FF品红色
VbCyan & HFFFF00青色
VbWhite & HFFFFFF white
VbGrayText &H80000011灰色(无效)文本
VbButtonText &H80000012按下按钮上文字的颜色
VbInactiveCaptionText &H80000013非活动标题中的文本颜色
Vb3DHighlight &H80000014高亮显示3d显示元素的颜色
Vb3DDKShadow &H80000015三维显示元素的最暗阴影颜色
在3d中,Vb3DLight和h80000016低于vb3Dhighlight
Vb3DFace &H8000000F文本表面颜色
Vb3DShadow &H80000010文本阴影颜色
VbInfoText &H80000017提示窗口文字颜色
VbInfoBackground &H80000018表示窗口中背景的颜色
E. vb里面,10进制转颜色代码
Option Explicit
Private Sub Command1_Click()
Dim ret As String
ret = VBColorToStr(&HB0A)
MsgBox ret
End Sub
Private Function VBColorToStr(ByVal dwColor As Long) As String
Dim lpBlue As String
Dim lpGreen As String
Dim lpRed As String
'通过And &HFF获得低位8个bit
lpRed = Format$(CStr(Hex(dwColor And &HFF)), "@@")
'乘以^(-8)再取整,表示将整个数右移8个bit,然后通过And &HFF获得低位8个bit
lpGreen = Format$(CStr(Hex(Int(dwColor * 2 ^ (-8)) And &HFF)), "@@")
'乘以2^(-16)再取整,表示将整个数右移16个bit,然后通过And &HFF获得低位8个bit
lpBlue = Format$(CStr(Hex(Int(dwColor * 2 ^ (-16)) And &HFF)), "@@")
'函数返回值前将字符串按照RGB格式排列,并将" "符号替换成"0"
VBColorToStr = Replace(lpRed & lpGreen & lpBlue, " ", "0")
End Function
用数字运算速度大大快于字符串运算,所以应尽量采用取数字的二进制算法得到结果,最后再将结果转换成字符串输出。
F. vb中颜色设置的代码
VB使用RGB 函数和QBColor 函数等指定颜色。
RGB 函数,返回一个 Long整数,用来表示一个 RGB 颜色值专。
使用 RGB 函数,可以用属 RGB 函数来指定任何颜色。
为了用 RGB 函数指定颜色
1.要对三种主要颜色(红、绿、蓝)中的每种颜色,赋给从 0 到 255 中的数值,0 表示亮度最低,而 255 表示亮度最高。
2.使用红-绿-蓝的排列方式,将三个数值输入给 RGB 函数。
3.将结果赋给颜色属性或颜色参数。
G. 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'这是蓝色分量
H. 想用VB做一个颜色值RGB转换器,要有一个合成颜色预览的窗口,求代码
I. VB_如何将颜色转换为RGB
是6位的十六进制的数吧?
前2位换算成十进制 是R
中间2位换算成十进制 是G
最后2位换算成十进制 是B
J. 怎样用VB的RGB调各种颜色
Private Sub Command1_Click()
Dim x As String, y As String, z As String
x = Hex(HScroll1.Value)
y = Hex(HScroll2.Value)
z = Hex(HScroll3.Value)
Text1.Text = x & y & z
Form1.BackColor = CLng("&h" & x & y & z)
End Sub
Private Sub HScroll1_Change()
Command1_Click
End Sub
Private Sub HScroll2_Change()
Command1_Click
End Sub
Private Sub HScroll3_Change()
Command1_Click
End Sub