0

有谁知道在visual basic 2010中单击图片框控件时获取像素颜色值的方法?

我创建了一个小型绘画应用程序,我在儿童游戏中使用它,但我不希望孩子们在他们正在着色的图像的轮廓上着色。因此,我需要检查图片框中当前单击的像素不是黑色的。

例如在伪代码中

如果颜色不是黑色,那么
    允许将像素更改为当前颜色
别的
     没做什么
万一
4

1 回答 1

1

这是从 PictureBox 获取像素的一种方法:

Private Function GetColor(pic As PictureBox, X As Integer, Y As Integer) As Color

    If pic Is Nothing Then Return Nothing

    Using tmp As New Bitmap(pic.ClientSize.Width, pic.ClientSize.Height)

        Dim r As New Rectangle(0, 0, tmp.Width, tmp.Height)

        Using g As Graphics = Graphics.FromImage(tmp)
            g.DrawImage(pic.Image, r, r, GraphicsUnit.Pixel)
        End Using

        Return tmp.GetPixel(X, Y)

    End Using

End Function

就这样称呼它:

Dim col As Color = GetColor(PictureBox1, someX, someY)
于 2013-07-16T22:34:50.203 回答