2013-10-05 224 views
0

我使用vb.net 2008製作windows應用程序,因爲我想以編程方式更改圖像的顏色。對於例如將白色更改爲綠色。你能幫我麼。提前致謝。更改圖像的顏色

+0

你問的很複雜(得到一個準確的結果)。不僅有一小部分清晰定義的顏色,而且還有大量您稱之爲「綠色」的組合。做一些研究,做一些自己的努力,當你的想法更清晰(並可以顯示你所做的)時更好地回到這裏。 – varocarbas

+0

看看我對這個[SO問題]的回答(http://stackoverflow.com/a/8774798/479512)它適用於c#,但你應該能夠從中得到一些想法。 –

回答

3

這裏是基本的想法,您可以根據自己的需要進行修改。創建一個名爲pic的按鈕和圖片框。將此代碼放置在按鈕單擊事件中,並用您選擇的圖像替換路徑。您只需在if語句中更改代碼以創建特定顏色的閾值。爲了找出閾值的RGB值,您可以使用繪圖程序或在線顏色來找到所需顏色範圍的正確值。

Dim x As Integer 
    Dim y As Integer 
    Dim red As Byte 
    Dim green As Byte 
    Dim blue As Byte 

    Dim img As Bitmap = New Bitmap("D:\dump\raycaster\Debug\pics\redbrick.png") 

    For x = 0 To img.Width - 1 
     For y = 0 To img.Height - 1 
      red = img.GetPixel(x, y).R 
      green = img.GetPixel(x, y).G 
      blue = img.GetPixel(x, y).B 
      If red > 128 Then 
       img.SetPixel(x, y, Color.Green) 
      End If 
      If blue > 200 And green > 200 Then 
       img.SetPixel(x, y, Color.Red) 
      End If 
     Next 
    Next 

    pic.Image = img 

而對於像你說的具體改變白到綠:

If red > 240 And green > 240 And blue > 240 Then 
    img.SetPixel(x, y, Color.Green) 
End If 

我做了240,因爲很多時候,你不會有一個純白色。

+0

非常感謝@ Synaps3。它的工作 –

+0

@Shahulhameed:記住如果它解決了你的問題,請點擊他答案旁邊的綠色勾選按鈕。 – Voldemort

+0

@ Synaps3,非常好的代碼。你可能知道如何找回默認圖片 - 對於mouse_hover事件會非常有用嗎? – LuckyLuke82