Minggu, 30 Juni 2013

pengolahan manipulasi citra

Public Class Form1
    Dim Gambar As Bitmap
    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
                        vH = 0
                        vM = 0
                        vB = 0
                    Else
                        vM = 255
                        vH = 255
                        vB = 255
                    End If
                    .SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic1.Image = gambar
                Pic2.Refresh()
            Next
        End With
    End Sub

    Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked
        Gambar = New Bitmap(Pic1.Image)
    End Sub

    Private Sub NegativeImageToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NegativeImageToolStripMenuItem.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 = 255 - .GetPixel(Pc, Pb).R
                    vH = 255 - .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
                Pic1.Image = Gambar
                Pic2.Refresh()
            Next
        End With
    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 BrightnessToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BrightnessToolStripMenuItem.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 RotateLeftToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RotateLeftToolStripMenuItem.Click
        Dim gambar2 = New Bitmap(Pic2.Image)
        gambar2 = New Bitmap(Pic2.Image)
        Pic2.Image = gambar2
        gambar2.RotateFlip(RotateFlipType.RotateNoneFlipX)
        Pic2.Image = gambar2
    End Sub

    Private Sub RotateRightToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RotateRightToolStripMenuItem.Click
        Dim gambar2 = New Bitmap(Pic2.Image)
        gambar2 = New Bitmap(Pic2.Image)
        Pic2.Image = gambar2
        gambar2.RotateFlip(RotateFlipType.RotateNoneFlipY)
        Pic2.Image = gambar2
    End Sub

    Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
        Dim gambar2 = New Bitmap(Pic2.Image)
        gambar2 = New Bitmap(Pic2.Image)
        Pic2.Image = gambar2
        gambar2.RotateFlip(RotateFlipType.Rotate90FlipX)
        Pic2.Image = gambar2
    End Sub

    Private Sub ToolStripMenuItem3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem3.Click
        Dim Pb, Pc As Integer
        Dim vM, vH, vB As Double
        Dim gambar3 As Bitmap = New Bitmap(Pic1.Image)
        With Gambar
            For Pb = .Height - 1 To 0 Step -1
                For Pc = .Width - 1 To 0 Step -1
                    vM = .GetPixel(Pc, Pb).R
                    vH = .GetPixel(Pc, Pb).G
                    vB = .GetPixel(Pc, Pb).B
                    gambar3.SetPixel(.Width - 1 - Pc, .Height - 1 - Pb, Color.FromArgb(vM, vH, vB))
                Next
                Pic2.Image = gambar3
                Pic2.Refresh()
            Next
        End With
        Gambar = gambar3
    End Sub

    Private Sub OpenCitraToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenCitraToolStripMenuItem.Click
        OFD.Filter = "MBP|*.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 OFD_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OFD.FileOk

    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.Bmp)
        End If
    End Sub

    Private Sub ToolStripMenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem4.Click
        Dim gambar2 = New Bitmap(Pic2.Image)
        gambar2 = New Bitmap(Pic2.Image)
        Pic2.Image = gambar2
        gambar2.RotateFlip(RotateFlipType.Rotate270FlipX)
        Pic2.Image = gambar2
    End Sub

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

    Private Sub HijauToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HijauToolStripMenuItem.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 BiruToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BiruToolStripMenuItem.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
                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

    Private Sub MerahToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MerahToolStripMenuItem.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
                gambar2.SetPixel(Pc, Pb, Color.FromArgb(vM, vH, vB))
            Next
            Pic2.Image = gambar2
            Pic2.Refresh()
        Next
    End Sub
End Class


Listing program

1)  tampilan untuk program 180 derajat.


 
2)  tampilan program
untuk 90 derajat
3)   tampilan program untuk kontras hijau
4)   tampilan untuk kontras biru
5)   tampila untuk kontras merah
6)   tampilan program untuk grayscale
7)   tampilan program untuk biner
8)  tampilan untuk program brigthness
9)   tampila untuk program negativ image
10)   tampilan program untuk 270 derajat


Tidak ada komentar:

Posting Komentar