VB從圖片框控件取得顏色

字號:

Point方法返回圖片框控件里指定X,Y坐標處的顏色。要獲得鼠標指針所在位置的顏色,就要將這樣的代碼放入用戶該控件的MouseMove事件過程里。MouseMove過程會被傳遞給指針的當前X,Y坐標,這就讓這段代碼變?nèi)菀琢耍?BR>    Private Sub Picture1_MouseMove(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    Dim rgb As Long
    rgb = Picture1.Point(X, Y)
    End Sub
    Point方法所返回的值是一個Long類型,它會給用于顏色的RGB值編碼。為了能夠被有效地使用,這個被編碼的值必須被分成獨立的R、G、B組件,它們每個都十進制0-255或者十六進制00-FF范圍內(nèi)的的一個整數(shù)。如果使用十六進制表示的話,那么Point返回的值就是:
    00BBGGRR
    使用十六進制標示法會讓顏色的提取操作變?nèi)菀?。如果RGB是由Point方法返回的值,那么下面就是這個提取操作如何進行的細節(jié):
    red = rgb Mod &H100
    green = (rgb \ &H100) Mod &H100
    blue = (rgb \ &H10000) Mod &H100
    在這里,最終的MouseMove事件過程顯示了出來。要看到這個過程的實際使用,就要創(chuàng)建一個標準的EXE項目,并在表單上放一個圖片框和一個文本框(Text Box)。將圖像上傳到圖片框里,然后運行該項目。當鼠標移動到這個圖像上的時候,文本框里就會顯示指針處像素的RGB值。
    Private Sub Picture1_MouseMove(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    Dim rgb As Long
    Dim r As String, g As String, b As String
    rgb = Picture1.Point(X, Y)
    r = CStr(rgb Mod &H100)
    g = CStr((rgb \ &H100) Mod &H100)
    b = CStr((rgb \ &H10000) Mod &H100)
    Text1.Text = "R " & r & ", G " & g & ", B " & b
    End Sub
    如果你只想看到你點擊到的那個像素的RGB值,你可以將相同的代碼放到MouseDown事件過程里。