㈠ 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