-1

関数に保存する picbox を取得しました

画像をビットマップとして、

私は今できる機能が必要です

マウスをその上に移動すると、特定のピクセルの色 RGB コンポーネントを見つける

これを得るにはどうすればいいですか?


選択したテキスト ボックスに RGB とピクセルを表示することに成功しましたが、マウスをピクチャ ボックスの外に移動すると、エラー メッセージが表示されます。

パラメーターは正で < 幅でなければなりません。パラメータ名:×

If eX > 300 Then eX = 300 を使用しようとしましたが、「eX」は読み取り専用であると表示されました

現在の私のコードは次のようになります。

    If pixBox1.Image Is Nothing Then Exit Sub
    txtColourPixel.Text = String.Format("x,y = {0},{1}; Color={2}", e.X, e.Y, DirectCast(pixBox1.Image, Bitmap).GetPixel(e.X, e.Y).ToString)
4

3 に答える 3

1

あなたはこのようにすることができます:

更新: Move ハンドラーが実際の画像の外側の座標を与える場合があります。ワンドはこれを処理するか、単に無視することができます:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim ofd As New OpenFileDialog
    ofd.ShowDialog()
    PictureBox1.ImageLocation = ofd.FileName
End Sub

Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
    If PictureBox1.Image Is Nothing Then Exit Sub
    Try
        TextBox1.Text = String.Format("x,y = {0},{1}; Color={2}", e.X, e.Y, DirectCast(PictureBox1.Image, Bitmap).GetPixel(e.X, e.Y).ToString)
    Catch ex As ArgumentOutOfRangeException
        ' this can happen, we just swallow it and show an error text
        TextBox1.Text = "out of bounds"
    End Try
End Sub

GetPixelご希望の方法です。

于 2012-11-30T14:32:35.917 に答える
0

マウス移動イベントにハンドラーを追加して、マウスが移動したときにマウスの x、y 位置を取得します。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousemove.aspx

Bitmap.GetPixelその場所の色を取得するために使用します。

http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel.aspx

于 2012-11-30T14:33:29.193 に答える
0

Bitmap.GetPixel を使用して、ピクセルの色を決定できます。 http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.getpixel.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

次に、Color の R、G、および B コンポーネントを使用して、R、G および B の値を取得します: http://msdn.microsoft.com/en-us/library/system.drawing.color.r.aspx

于 2012-11-30T14:37:05.393 に答える