VB中的涂色

  • 来源: 互联网 作者: 若水   2008-03-17/16:25
  • VB provides an easy RGB function to convert three colours into a RGB colour code. However, it provides no way of converting it back to the three colours. It also provides no support for HTML colour codes used on web pages. We decided to write some functions to convert HTML colour codes to and from RGB codes, and also functions to break them back down into their constituent colours.

    Public Const RedPart = 0

    Public Const GreenPart = 1

    Public Const BluePart = 2

    Public Function HTML(Red As Integer, Green As Integer, Blue As Integer) As String

    HTML = ""

    If Len(Hex$(Red)) = 1 Then

    HTML = HTML & "0" & Hex$(Red)

    Else

    HTML = HTML & Hex$(Red)

    End If

    If Len(Hex$(Green)) = 1 Then

    HTML = HTML & "0" & Hex$(Green)

    Else

    HTML = HTML & Hex$(Green)

    End If

    If Len(Hex$(Blue)) = 1 Then

    HTML = HTML & "0" & Hex$(Blue)

    Else

    HTML = HTML & Hex$(Blue)

    End If

    End Function

    Public Function UnRGB(RGBCol As Long, Part As Integer) As Integer

    注释:Part: 0=Red, 1=Green, 2=Blue

    Select Case Part

    Case 0

    UnRGB = RGBCol And &HFF

    注释:mask 000000000000000011111111 and shift bits right

    Case 1

    UnRGB = (RGBCol And &HFF00) / &HFF

    注释:mask 000000001111111100000000 and shift bits right

    Case 2

    UnRGB = (RGBCol And &HFF0000) / &HFFFF

    注释:mask 111111110000000000000000 and shift bits right

    End Select

    End Function

    Public Function UnHTML(HTMLCol As String, Part As Integer) As Integer

    注释:Part: 0=Red, 1=Green, 2=Blue

    Select Case Part

    Case 0

    UnHTML = (CLng("&H" & HTMLCol) And &HFF0000) / &HFFFF

    注释:mask 111111110000000000000000 and shift bits right

    Case 1

    UnHTML = (CLng("&H" & HTMLCol) And &HFF00) / &HFF

    注释:mask 000000001111111100000000 and shift bits right

    Case 2

    UnHTML = CLng("&H" & HTMLCol) And &HFF

    注释:mask 000000000000000011111111 and shift bits right

    End Select

    End Function

    Public Function RGB2HTML(RGBCol As Long) As String

    RGB2HTML = HTML(UnRGB(RGBCol, RedPart),

    UnRGB(RGBCol, GreenPart), UnRGB(RGBCol, BluePart))

    End Function

    Public Function HTML2RGB(HTMLCol As String) As Long

    HTML2RGB = RGB(UnHTML(HTMLCol, RedPart), UnHTML(HTMLCol, _

    GreenPart), UnHTML(HTMLCol, BluePart))

    End Function


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多