VB6_ BMP File RGB 추출 ( VB6 코드임.. )

2015. 8. 4. 11:27Programming/VB6

네...GetPixel로 읽어온 좌표의 색상값을 RGB로 분해만 하시면 해결 됩니다.

아래 예제는 폼에 픽쳐박스 하나를 올려놓고, 비트맵 이미지를 불러들인다음,

픽쳐박스의 스케일모드를 '3-픽셀'로 설정해 놓으신후 코드를 붙여서 실행해 보세요.

픽쳐박스의 이미지위를 이동할때마다 디버그창에 색상이 표시됩니다.

 

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long

 

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim lColor As Long
    Dim bColor(1 To 4) As Byte
    Dim iRed As Integer, iGreen As Integer, iBlue As Integer
     
    lColor = GetPixel(Picture1.hDC, X, Y)
   
    Call CopyMemory(bColor(1), lColor, Len(lColor))
     
    iRed = bColor(1)
    iGreen = bColor(2)
    iBlue = bColor(3)
   
    Debug.Print iRed, iGreen, iBlue
End Sub