2017-04-16 52 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值。如果形状有一个图片/图案/渐变或其他填充,那么你必须诉诸于上述的东西。 –