2017-04-16 55 views
-1

我在,我不得不從互聯網網站,標誌帶顏色的一個項目工作的顏色等的RGB值獲取給予物體

有什麼方法可以讓我得到的RGB值我指着哪裏的顏色?或者有什麼辦法可以將其中的彩色對象的RGB值作爲文本獲取,因此我可以將其同樣用於其他對象?

回答

0

您需要調用WinAPI函數來執行此操作。

這裏有一個例子: http://www.codeguru.com/vb/gen/vb_graphics/article.php/c2357/A-method-to-get-the-pixel-color-under-the-mouse-pointer.htm

我已經簡化它/適應它。這將當前選中的形狀的顏色設置爲像素的顏色光標下:

Option Explicit 

Private Type POINTAPI 
    x As Long 
    y As Long 
End Type 
' 
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, _ 
    ByVal x As Long, ByVal y As Long) As Long 
Private Declare Function GetCursorPos Lib "user32" _ 
     (lpPoint As POINTAPI) As Long 
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) _ 
     As Long 

Sub Test() 
    Dim tPOS As POINTAPI 
    Dim sTmp As String 
    Dim lColor As Long 
    Dim lDC As Long 

    lDC = GetWindowDC(0) 
    Call GetCursorPos(tPOS) 
    lColor = GetPixel(lDC, tPOS.x, tPOS.y) 

    sTmp = Right$("000000" & Hex(lColor), 6) 

    ActiveWindow.Selection.ShapeRange(1).Fill.ForeColor.RGB = lColor 

End Sub 
+0

有沒有什麼辦法可以在填充的對象或任何其他宏代碼,以獲得RGB值獲得RGB值太其中的選定對象 –

+0

如果所選形狀是固體填充的,則ActiveWindow.Selection.Shaperange(1).Fill.Forecolor.RGB將爲您提供填充的RGB值。如果形狀有一個圖片/圖案/漸變或其他填充,那麼你必須訴諸於上述的東西。 –