kriptografi pengolahan citra lanjutan







Listing program :


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
        With gambar

            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R - 10
                    vH = gambar.GetPixel(Pc, Pb).G
                    vB = gambar.GetPixel(Pc, Pb).B
                    If vM <= 0 Then vM = 0
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    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
        With gambar
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R
                    vH = gambar.GetPixel(Pc, Pb).G - 10
                    vB = gambar.GetPixel(Pc, Pb).B
                    If vH <= 0 Then vH = 0
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    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
        With gambar
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R
                    vH = gambar.GetPixel(Pc, Pb).G
                    vB = gambar.GetPixel(Pc, Pb).B - 10
                    If vB <= 0 Then vB = 0
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    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

        With gambar
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R + 10
                    vH = gambar.GetPixel(Pc, Pb).G
                    vB = gambar.GetPixel(Pc, Pb).B
                    If vM >= 255 Then vM = 255
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With
    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
        With gambar
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R
                    vH = gambar.GetPixel(Pc, Pb).G + 10
                    vB = gambar.GetPixel(Pc, Pb).B
                    If vH >= 255 Then vH = 255
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With


    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
        With gambar
            For Pb = 0 To gambar.Height - 1
                For Pc = 0 To gambar.Width - 1
                    vM = gambar.GetPixel(Pc, Pb).R
                    vH = gambar.GetPixel(Pc, Pb).G
                    vB = gambar.GetPixel(Pc, Pb).B + 10
                    If vB >= 255 Then vB = 255
                    gambar.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar
                Pic2.Refresh()
            Next
        End With

    End Sub
   
End Class

hasil nya sebagai berikut :

 hasil grayscale
  hasil negatif
  hasil brightness
  hasil rotate 90
  hasil rotate 180
  hasil rotate 270
  hasil biner
  hasil contras
  hasil filter smothing
  hasil weighted smothing
  hasil Pengurangan green
  hasil Penurangan red
  hasil Pengurangan blue

  hasil penambahan red
 hasil penambahan green








  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS