2013-07-16 80 views
0

有沒有人知道在visualbox 2010中點擊圖片框控件時獲取某個像素的顏色值的方法?如何在visual basic 2010中獲取圖片框控件中像素的顏色

我創建了一個小型的塗料應用程序,即時通訊在小孩遊戲中使用,但我不想讓孩子在他們着色的圖像輪廓上着色。所以要做到這一點,我需要檢查當前點擊畫框中的像素不是黑色的。

例如在僞代碼

 
if colour not black then 
    Allow pixel to be changed to current colour 
else 
    Do nothing 
end if 

回答

1

這是一種方式,你可以從圖片框得到一個像素:

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) 
+2

不是真的。你忘記了PictureBox.SizeMode。 –

+0

謝謝@Ken。我不得不稍微調整它,因爲它正在創建一個空白的位圖。我嘗試編輯你的版本 –

+0

德安是對的,這*做*創建一個空白的位圖。您忘了將圖片從圖片框中拖入其中。 –

相關問題