كود :
'3booody
'vb4arb.com
Public Class Form1
Dim btm1, btm2 As Bitmap
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btm1 = New Bitmap("C:\Users\ahmed\Desktop\abod\image1.jpg") 'هنا توضع مسار الصورة
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Image = btm1
End Sub
Enum Filter
Red
Blue
BlackWhite
Yellow
Green
End Enum
Function NewImage(ByVal oldImage As Bitmap, ByVal Filter As Filter) As Image
Dim R, G, B As Short
btm2 = New Bitmap(oldImage)
Select Case Filter
Case Form1.Filter.BlackWhite
For x As Integer = 0 To btm2.Width - 1
For y As Integer = 0 To btm2.Height - 1
Dim Clr As Color = btm2.GetPixel(x, y)
R = Clr.R : G = Clr.G : B = Clr.B
Dim A As Short = R + G + B
Dim Av As Short = A / 3
btm2.SetPixel(x, y, Color.FromArgb(Av, Av, Av))
Next
Next
Return btm2
Case Form1.Filter.Red
For x As Integer = 0 To btm2.Width - 1
For y As Integer = 0 To btm2.Height - 1
Dim Clr As Color = btm2.GetPixel(x, y)
R = Clr.R : G = Clr.G : B = Clr.B
R += 30
If R > 255 Then R = 255
G -= 30
If G < 0 Then G = 0
B -= 30
If B < 0 Then B = 0
btm2.SetPixel(x, y, Color.FromArgb(R, G, B))
Next
Next
Return btm2
Case Form1.Filter.Blue
For x As Integer = 0 To btm2.Width - 1
For y As Integer = 0 To btm2.Height - 1
Dim Clr As Color = btm2.GetPixel(x, y)
R = Clr.R : G = Clr.G : B = Clr.B
B += 30
If B > 255 Then B = 255
R -= 30
If R < 0 Then R = 0
G -= 30
If G < 0 Then G = 0
btm2.SetPixel(x, y, Color.FromArgb(R, G, B))
Next
Next
Return btm2
Case Form1.Filter.Yellow
For x As Integer = 0 To btm2.Width - 1
For y As Integer = 0 To btm2.Height - 1
Dim Clr As Color = btm2.GetPixel(x, y)
R = Clr.R : G = Clr.G : B = Clr.B
B -= 100
If B < 0 Then B = 0
btm2.SetPixel(x, y, Color.FromArgb(R, G, B))
Next
Next
Return btm2
Case Form1.Filter.Green
For x As Integer = 0 To btm2.Width - 1
For y As Integer = 0 To btm2.Height - 1
Dim Clr As Color = btm2.GetPixel(x, y)
R = Clr.R : G = Clr.G : B = Clr.B
G += 30
If G > 255 Then G = 255
R -= 30
If R < 0 Then R = 0
B -= 30
If B < 0 Then B = 0
btm2.SetPixel(x, y, Color.FromArgb(R, G, B))
Next
Next
Return btm2
End Select
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If btm1 Is Nothing Then Return
PictureBox1.Image = NewImage(btm1, Filter.BlackWhite)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If btm1 Is Nothing Then Return
PictureBox1.Image = NewImage(btm1, Filter.Red)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If btm1 Is Nothing Then Return
PictureBox1.Image = NewImage(btm1, Filter.Blue)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
If btm1 Is Nothing Then Return
PictureBox1.Image = NewImage(btm1, Filter.Yellow)
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If btm1 Is Nothing Then Return
PictureBox1.Image = NewImage(btm1, Filter.Green)
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If PictureBox1.Image Is Nothing Then Return
Dim x As Short = e.X * PictureBox1.Image.Width / PictureBox1.ClientSize.Width
Dim y As Short = e.Y * PictureBox1.Image.Height / PictureBox1.ClientSize.Height
Using b As New Bitmap(PictureBox1.Image)
Me.Text = b.GetPixel(x, y).ToString
End Using
End Sub
End Class