本人现在欲提取PictureBox里面图片某一点的RGB值。本人现在的实现方法是:     For lngX = 0 To Picture1.ScaleWidth - 1 
        For lngY = 0 To Picture1.ScaleHeight - 1
            C = Picture1.Point(lngX, lngY)
            R = C Mod 256
            G = C \ 256 Mod 256
            B = C \ 256 \ 256
        next lngY
     next lngX可已经论证该方法是错误的,请问各位大虾,有何方法能得到图片的RGB值。

解决方案 »

  1.   

    .Width
    .Height.ScaleMode
    VbPixels 3 像素R And 255
    G And 65280
    B And 16711680
      

  2.   

    你的方法是提取的(Picture1.ScaleWidth-1 ,Picture1.ScaleHeight-1)这点的值,而不是其他点的值!
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
                C = Picture1.Point(X, Y)
                r = C Mod 256
                g = C \ 256 Mod 256
                b = C \ 256 \ 256
                Debug.Print r, g, b
    End Sub
      

  3.   

    To MmMvp:
    你可能误会了,其实for语句里面我还有其他的语句,我是要把整个图片的每一象素的RGB转换成灰度值,然后保存到二维数组里面的。
    我是说,此方法所提取的RGB的值不正确,和颜色拾取器提取出来的RGB值有出入。
      

  4.   

    To Viena:
        能否讲的稍微详细一些,我看不懂。