Berikut Listing Programnya :



Public Class Form1
    Dim gambar As Bitmap
  
    Private Sub OpenCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenCitraToolStripMenuItem.Click
        OFD.Filter = "BMP|*.bmp|JPG|*.Jpg"
        OFD.ShowDialog()
        If OFD.FileName = "" Then Exit Sub
        Pic1.Image = Image.FromFile(OFD.FileName)
        gambar = New Bitmap(Pic1.Image)
    End Sub

    Private Sub SaveCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveCitraToolStripMenuItem.Click
        SFD.Filter = "JPG|*.Jpg|BMP|*.bmp"
        SFD.ShowDialog()
        If SFD.FileName = "" Then Exit Sub
        If SFD.FilterIndex = 1 Then
            gambar.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
        End If
        If SFD.FilterIndex = 2 Then
            gambar.Save(SFD.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
        End If
    End Sub

    Private Sub GrayscaleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GrayscaleToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim Rt, vM, vH, vB As Double
        With gambar
            For Pb = 0 To .Height - 1
                For Pc = 0 To .Width - 1
                    vM = .GetPixel(Pc, Pb).R
                    vH = .GetPixel(Pc, Pb).G
                    vB = .GetPixel(Pc, Pb).B
                    Rt = (vM + vH + vB) / 3
                    .SetPixel(Pc, Pb, Color.FromArgb(Rt, Rt, Rt))

                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub NegatifToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NegatifToolStripMenuItem.Click
        Dim Pb As Integer
        Dim vM, vH, vB As Double
        With gambar
            For Pb = 0 To .Height - 1
                For Pc = 0 To .Width - 1
                    vM = 225 - .GetPixel(Pc, Pb).R
                    vH = 225 - .GetPixel(Pc, Pb).G
                    vB = 255 - .GetPixel(Pc, Pb).B
                    If vM <= 0 Then vM = 0
                    If vB <= 0 Then vB = 0
                    If vH <= 0 Then vH = 0
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub BrigthnessToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrigthnessToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        With gambar
            For Pb = 0 To .Height - 1
                For Pc = 0 To .Width - 1
                    vM = .GetPixel(Pc, Pb).R + 5
                    vH = .GetPixel(Pc, Pb).G + 5
                    vB = .GetPixel(Pc, Pb).B + 5
                    If vM > 255 Then vM = 255
                    If vB > 255 Then vB = 255
                    If vH > 255 Then vH = 255
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))

                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click
        End
    End Sub

    Private Sub BinerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BinerToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim rata, vM, vH, vB As Double
        With gambar
            For Pb = 0 To .Height - 1
                For Pc = 0 To .Width - 1
                    vM = .GetPixel(Pc, Pb).R
                    vH = .GetPixel(Pc, Pb).G
                    vB = .GetPixel(Pc, Pb).B
                    rata = (vM + vH + vB) / 3
                    If (rata < 128) Then
                        vM = 0
                        vH = 0
                        vB = 0
                    Else
                        vM = 255
                        vH = 255
                        vB = 255
                    End If
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub DefaultGambarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DefaultGambarToolStripMenuItem.Click
        gambar = New Bitmap(Pic1.Image)
    End Sub

    Private Sub ContrastToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContrastToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim tc As Integer
        tc = 5
        With gambar
            For Pb = 0 To .Height - 0 - 1
                For Pc = 0 To .Width - 0 - 1
                    vM = .GetPixel(Pc, Pb).R
                    vH = .GetPixel(Pc, Pb).G
                    vB = .GetPixel(Pc, Pb).B
                    'grey = (vM + vH + vB) / 3 'konversi konversi warna pada pixel Pb,Pc ke grey
                    vM = vM * tc
                    vH = vH * tc
                    vB = vB * tc
                    If (vM > 255) Then
                        vM = 255
                    End If
                    If (vH > 255) Then
                        vH = 255
                    End If
                    If (vB > 255) Then
                        vB = 255

                    End If
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
       
    End Sub
  
    Private Sub Rotasi(ByVal s As RotateFlipType)
        Dim gambar2 = New Bitmap(Pic2.Image)
        Pic2.Image = gambar
        gambar.RotateFlip(s)
        Pic2.Image = gambar
        Pic2.Refresh()
    End Sub
    Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
        Rotasi(RotateFlipType.Rotate90FlipNone)
    End Sub

    Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem5.Click
        Rotasi(RotateFlipType.Rotate180FlipNone)
    End Sub

    Private Sub ToolStripMenuItem6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem6.Click
        Rotasi(RotateFlipType.Rotate270FlipNone)
    End Sub

    Private Sub FilterSmoothingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FilterSmoothingToolStripMenuItem.Click
        Dim bitmap As New Bitmap(Pic1.Image)
        Dim DX As Integer = 1
        Dim DY As Integer = 1
        Dim vM, vH, vB As Integer
        Dim Pb, Pc As Integer
        Dim MF(2, 2) As Double
        'MaskFilter.Show()
        'matriks Filter
        '  0 1 2
        '0 a b c
        '1 d e f
        '2 g h i
        'Filter smoothing
        MF(0, 0) = 1 / 9 'a
        MF(0, 1) = 1 / 9 'b
        MF(0, 2) = 1 / 9 'c
        MF(1, 0) = 1 / 9 'd
        MF(1, 1) = 1 / 9 'e
        MF(1, 2) = 1 / 9 'f
        MF(2, 0) = 1 / 9 'g
        MF(2, 1) = 1 / 9 'h
        MF(2, 2) = 1 / 9 'i

        With gambar
            For Pb = DX To .Height - DX - 1
                For Pc = DY To .Width - DY - 1
                    'proses matriks filter
                    'point(Pc,Pb)*e --> titik tengah
                    vM = CInt(.GetPixel(Pc, Pb).R) * MF(1, 1)
                    vH = CInt(.GetPixel(Pc, Pb).G) * MF(1, 1)
                    vB = CInt(.GetPixel(Pc, Pb).B) * MF(1, 1)
                    'proses titik tetangga
                    'point(Pc-1,Pb-1)*a--> MF(0,0)--> titik kiri atas
                    If Pc - 1 < 1 And Pb - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb - 1).R) * MF(0, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb - 1).G) * MF(0, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb - 1).B) * MF(0, 0))
                    End If
                    'point(Pc,Pb-1)*b --> MF(0,1) --> titik atas
                    If Pb - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 1))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc, Pb - 1).R) * MF(0, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb - 1).G) * MF(0, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb - 1).B) * MF(0, 1))
                    End If
                    'point(Pc+1,Pb-1)*c --> MF(0,2) --> titik kanan atas
                   If Pc + 1 > .Width - DY - 1 And Pb - 1 > 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb - 1).R) * MF(0, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb - 1).G) * MF(0, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb - 1).B) * MF(0, 2))
                    End If
                    'point(Pc-1,Pb)*d --> MF(1,0) --> titik kiri
                    If Pc - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(1, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(1, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(1, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb).R) * MF(1, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb).G) * MF(1, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb).B) * MF(1, 0))
                    End If
                    'point(Pc+1,Pb)*f --> MF(1,2) --> titik kanan 
                    If Pc + 1 > .Width - DY - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(1, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(1, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(1, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb).R) * MF(1, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb).G) * MF(1, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb).B) * MF(1, 2))
                    End If
                    'point(Pc-1,Pb+1)*g --> MF(2,0) --> titik kiri bawah
                    If Pc - 1 < 1 And Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb + 1).R) * MF(2, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb + 1).G) * MF(2, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb + 1).B) * MF(2, 0))
                    End If
                    'point(Pc,Pb+1)*g --> MF(2,1) --> titik bawah
                    If Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 1))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc, Pb + 1).R) * MF(2, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb + 1).G) * MF(2, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb + 1).B) * MF(2, 1))
                    End If
                    'point(Pc+1,Pb+1)*h --> MF(2,2) --> titik kanan bawah
                    If Pc + 1 > .Width - DY - 1 And Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb + 1).R) * MF(2, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb + 1).G) * MF(2, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb + 1).B) * MF(2, 2))
                    End If
                    'normalisasi
                    If (vM < 0) Then
                        vM = 0
                    Else
                        If (vM > 255) Then
                            vM = 255
                        End If
                    End If
                    If (vH < 0) Then
                        vH = 0
                    Else
                        If (vH > 255) Then
                            vH = 255
                        End If
                    End If
                    If (vB < 0) Then
                        vB = 0
                    Else
                        If (vB > 255) Then
                            vB = 255
                        End If
                    End If
                    'simpan warna hasil smoothing ke point Pc,Pb
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub WeightedSmoothingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WeightedSmoothingToolStripMenuItem.Click
        Dim tempbmp As New Bitmap(Pic1.Image)
        Dim DX As Integer = 1
        Dim DY As Integer = 1
        Dim vM, vH, vB As Integer
        Dim Pb, Pc As Integer
        Dim MF(2, 2) As Double
        'MaskFilter.Show()
        'matriks Filter
        '  0 1 2
        '0 a b c
        '1 d e f
        '2 g h i
        'Filter smoothing
        MF(0, 0) = 1 / 16 'a
        MF(0, 1) = 2 / 16  'b
        MF(0, 2) = 1 / 16 'c
        MF(1, 0) = 2 / 16 'd
        MF(1, 1) = 4 / 16 'e
        MF(1, 2) = 2 / 16 'f
        MF(2, 0) = 1 / 16 'g
        MF(2, 1) = 2 / 16 'h
        MF(2, 2) = 1 / 16 'i

        With gambar
            For Pb = DX To .Height - DX - 1
                For Pc = DY To .Width - DY - 1
                    'proses matriks filter
                    'point(Pc,Pb)*e --> titik tengah
                    vM = CInt(.GetPixel(Pc, Pb).R) * MF(1, 1)
                    vH = CInt(.GetPixel(Pc, Pb).G) * MF(1, 1)
                    vB = CInt(.GetPixel(Pc, Pb).B) * MF(1, 1)
                    'proses titik tetangga
                    'point(Pc-1,Pb-1)*a--> MF(0,0)--> titik kiri atas
                    If Pc - 1 < 1 And Pb - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb - 1).R) * MF(0, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb - 1).G) * MF(0, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb - 1).B) * MF(0, 0))
                    End If
                    'point(Pc,Pb-1)*b --> MF(0,1) --> titik atas
                    If Pb - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 1))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc, Pb - 1).R) * MF(0, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb - 1).G) * MF(0, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb - 1).B) * MF(0, 1))
                    End If
                    'point(Pc+1,Pb-1)*c --> MF(0,2) --> titik kanan atas
                    If Pc + 1 > .Width - DY - 1 And Pb - 1 > 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(0, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(0, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(0, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb - 1).R) * MF(0, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb - 1).G) * MF(0, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb - 1).B) * MF(0, 2))
                    End If
                    'point(Pc-1,Pb)*d --> MF(1,0) --> titik kiri
                    If Pc - 1 < 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(1, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(1, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(1, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb).R) * MF(1, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb).G) * MF(1, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb).B) * MF(1, 0))
                    End If
                    'point(Pc+1,Pb)*f --> MF(1,2) --> titik kanan 
                    If Pc + 1 > .Width - DY - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(1, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(1, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(1, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb).R) * MF(1, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb).G) * MF(1, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb).B) * MF(1, 2))
                    End If
                    'point(Pc-1,Pb+1)*g --> MF(2,0) --> titik kiri bawah
                    If Pc - 1 < 1 And Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 0))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 0))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 0))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc - 1, Pb + 1).R) * MF(2, 0))
                        vH = vH + (CInt(.GetPixel(Pc - 1, Pb + 1).G) * MF(2, 0))
                        vB = vB + (CInt(.GetPixel(Pc - 1, Pb + 1).B) * MF(2, 0))
                    End If
                    'point(Pc,Pb+1)*g --> MF(2,1) --> titik bawah
                    If Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 1))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc, Pb + 1).R) * MF(2, 1))
                        vH = vH + (CInt(.GetPixel(Pc, Pb + 1).G) * MF(2, 1))
                        vB = vB + (CInt(.GetPixel(Pc, Pb + 1).B) * MF(2, 1))
                    End If
                    'point(j+1,i+1)*h --> MF(2,2) --> titik kanan bawah
                    If Pc + 1 > .Width - DY - 1 And Pb + 1 > .Height - DX - 1 Then 'jika out of border ambil nilai tengah/point(x,y)
                        vM = vM + (CInt(.GetPixel(Pc, Pb).R) * MF(2, 2))
                        vH = vH + (CInt(.GetPixel(Pc, Pb).G) * MF(2, 2))
                        vB = vB + (CInt(.GetPixel(Pc, Pb).B) * MF(2, 2))
                    Else
                        vM = vM + (CInt(.GetPixel(Pc + 1, Pb + 1).R) * MF(2, 2))
                        vH = vH + (CInt(.GetPixel(Pc + 1, Pb + 1).G) * MF(2, 2))
                        vB = vB + (CInt(.GetPixel(Pc + 1, Pb + 1).B) * MF(2, 2))
                    End If
                    'normalisasi
                    If (vM < 0) Then
                        vM = 0
                    Else
                        If (vM > 255) Then
                            vM = 255
                        End If
                    End If
                    If (vH < 0) Then
                        vH = 0
                    Else
                        If (vH > 255) Then
                            vH = 255
                        End If
                    End If
                    If (vB < 0) Then
                        vB = 0
                    Else
                        If (vB > 255) Then
                            vB = 255
                        End If
                    End If
                    'simpan warna hasil smoothing ke point Pc,Pb
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub RedToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedToolStripMenuItem1.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
       Dim gambar2 = New Bitmap(Pic2.Image)

            For Pb = 0 To gambar2.Height - 1
                For Pc = 0 To gambar2.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R - 10
                    vH = gambar2.GetPixel(Pc, Pb).G
                    vB = gambar2.GetPixel(Pc, Pb).B
                    If vM <= 0 Then vM = 0
                    gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Next
    End Sub

    Private Sub GreenToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GreenToolStripMenuItem1.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar2 = New Bitmap(Pic2.Image)
            For Pb = 0 To gambar2.Height - 1
                For Pc = 0 To gambar2.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R
                    vH = gambar2.GetPixel(Pc, Pb).G - 10
                    vB = gambar2.GetPixel(Pc, Pb).B
                    If vH <= 0 Then vH = 0
                    gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Next
     
    End Sub

    Private Sub BlueToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlueToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar2 = New Bitmap(Pic2.Image)
            For Pb = 0 To gambar2.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R
                    vH = gambar2.GetPixel(Pc, Pb).G
                    vB = gambar2.GetPixel(Pc, Pb).B - 10
                    If vB <= 0 Then vB = 0
                    gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Nex
    End Sub

    Private Sub RedToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RedToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar2 = New Bitmap(Pic2.Image)
   
            For Pb = 0 To gambar2.Height - 1
                For Pc = 0 To gambar2.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R + 10
                    vH = gambar2.GetPixel(Pc, Pb).G
                    vB = gambar2.GetPixel(Pc, Pb).B
                    If vM >= 255 Then vM = 255
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Next
    End Sub

    Private Sub GreenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GreenToolStripMenuItem.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar2 = New Bitmap(Pic2.Image)
            For Pb = 0 To gambar2.Height - 1
                For Pc = 0 To gambar2.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R
                    vH = gambar2.GetPixel(Pc, Pb).G + 10
                    vB = gambar2.GetPixel(Pc, Pb).B
                    If vH >= 255 Then vH = 255
                    gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Next

    End Sub

    Private Sub BlueToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlueToolStripMenuItem1.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar2 = New Bitmap(Pic2.Image)
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar2.Width - 1
                    vM = gambar2.GetPixel(Pc, Pb).R
                    vH = gambar2.GetPixel(Pc, Pb).G
                    vB = gambar2.GetPixel(Pc, Pb).B + 10
                    If vB >= 255 Then vB = 255
                    gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar2
                Pic2.Refresh()
            Next
    End Sub
   
End Class




Berikut Hasilnya :

 Tampilan Hasil Grayscale :


 Tampilan Hasil Negatif :


  Tampilan Hasil Brightness :



 Tampilan Hasil Rotate 90 derajat :


  Tampilan Hasil Rotate 180 derajat :


 Tampilan Hasil Rotate 270 derajat :

  Tampilan Hasil Biner :






 Tampilan Hasil Contrast :


 Tampilan Hasil Filter Smoothing :



 Tampilan Hasil Weighted Smoothing :




 Tampilan Hasil Pengurangan warna Merah :




 Tampilan Hasil Pengurangan warna Hijau :




 Tampilan Hasil Pengurangan warna Biru :




 Tampilan Hasil Penambahan warna Merah :



 Tampilan Hasil Penambahan warna Hijau :




 Tampilan Hasil Penambahan warna Biru :


Sekian Postingan saya mengenai Pengolahan Citra Lanjutan, Semoga postingan saya ini berguna dan bermanfaat bagi teman - teman semua...
Amin...