deva path
put a picture of the visible spectrum in the pictureboxCode:get pixel color ( in an image ) : Public Class Form1 ' I (moti barski) made this code (just saying) Dim curPixelX As Integer = 0 Dim curPixelY As Integer = 0 Dim r1, g1, b1 As String Dim curColorChar As Char = Nothing Dim bm As Bitmap Sub RGB_breakerBuster(ByVal color As String, ByRef red As String, ByRef green As String, ByRef blue As String) red = color.Substring(color.IndexOf("R=") + 2) color = red red = red.Substring(0, red.IndexOf(",")) green = color.Substring(color.IndexOf("G=") + 2) color = green green = green.Substring(0, green.IndexOf(",")) blue = color.Substring(color.IndexOf("B=") + 2) blue = blue.Substring(0, blue.IndexOf("]")) End Sub Public Function getPixelColor(ByVal red As String, ByVal green As String, ByVal blue As String) As Char Dim r, g, b As Integer Dim colorchar As Char r = red g = green b = blue If r > 245 And g > 245 And b > 245 Then colorchar = "w" ' white ElseIf r < 20 And g < 20 And b < 20 Then colorchar = "k" ' black (kuro in japanese) ElseIf r > g And g > b And g < 100 Then colorchar = "r" ' red ElseIf r > g And g > b And g > 200 Then colorchar = "y" ' yellow ElseIf r > g And g > b And 100 < g < 200 Then colorchar = "o" 'orange ElseIf (g > r And r > b) Or (g > b And b > r) Then colorchar = "g" 'green ElseIf b > g And g > r Then colorchar = "b" 'blue ElseIf (b > r And r > g) Or (r > b And g < 20) Then colorchar = "v" ' violet End If Return colorchar End Function Sub colorLegend() Select Case Label2.Text Case "w" Label3.Text = "white" Case "k" Label3.Text = "black" Case "r" Label3.Text = "red" Case "y" Label3.Text = "yellow" Case "o" Label3.Text = "orange" Case "g" Label3.Text = "green" Case "b" Label3.Text = "blue" Case "v" Label3.Text = "violate" Case Else End Select End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try TextBox1.Text = bm.GetPixel(curPixelX, curPixelY).ToString() RGB_breakerBuster(TextBox1.Text, r1, g1, b1) TextBox2.Text = r1 & " " & g1 & " " & b1 bm.SetPixel(curPixelX, curPixelY, Color.Black) PictureBox1.Image = bm curPixelX += 1 Label2.Text = getPixelColor(r1, g1, b1) colorLegend() Catch ex As Exception Timer1.Enabled = False MsgBox("done") End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = Not Timer1.Enabled bm = PictureBox1.Image curPixelY = bm.Height \ 2 End Sub End Class
see post #9 for faster code





Reply With Quote
