Pada postingan kali ini kita akan mencoba membuat efek timbul pada gambar yaitu emboss. emboss adalah salah satu metode pengolahan citra, dimana gambar akan diproses menjadi efek timbul.
Untuk mendapatkan proses emboss kita harus memproses 2 pixel gambar dalam sekali proses, pixel (x, y) dan pixel (x + 1, y +1). Kemudian nilai intensitas warna RGB pixel(x,y) dikurangi nilai intensitas warna RGB pixel (x+1, y+1) ditambah Nilai timbul (128) dan nilai emboss adalah absolut dimana tidak ada nilai citra minus. Dari penjelasan tersebut proses emboss dapat dirumuskan
:
E = (RGB1 - RGB2 + 128)
Ket :
E = Nilai Emboss
RGB1 = Nilai Intensitas warna RGB pixel(x,y)
RGB2 = Nilai Intensitas warna RGB pixel (x + 1, y +1)
128 = Nilai timbul
Untuk menerapkan rumusan diatas kita buat aplikasi emboss dengan visual basic 2010 :
Langkah 1 :
- Buka Aplikasi Visual Basic 2010
- Buat New Project -> Windows Forms Application
- Buat Desain Seperti Berikut :
Isi Form Dengan Tool sebagai berikut :
Toolbox |
Properties |
PictureBox1 |
Size Mode : StretchImage
BackColor : ControlLight |
PictureBox2 |
Size Mode : StretchImage
BackColor : ControlDark |
Button1 |
Text : Open File |
Button2 |
Text : Save |
Button3 |
Text : Emboss |
ProgressBar1 |
- |
OpenFileDialog1 |
- |
SaveFileDialog1 |
- |
Langkah 2 :
- Double Klik Button1 (Open File), Masukan Skrip Berikut :
OpenFileDialog1.Filter = "Images|*.bmp;*.jpg;*.png"
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
PictureBox1.Width = Convert.ToInt32(PictureBox1.Height * PictureBox1.Image.Width / PictureBox1.Image.Height)
Me.Text = OpenFileDialog1.FileName & "_" & PictureBox1.Image.Width & " X " & PictureBox1.Image.Height
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = PictureBox1.Image.Width
End If
- Double Klik Button2 (Save File), Masukan Skrip Berikut :
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> "" Then
PictureBox2.Image.Save(SaveFileDialog1.FileName + ".jpg")
End If
- Double Klik Button3 (Emboss), Masukan Skrip Berikut :
ProgressBar1.Value = 0
Dim r1, g1, b1 As Integer 'Menampung Intensitas RGB pixel(x,y)'
Dim r2, g2, b2 As Integer 'Menampung Intensitas RGB pixel(x + 1,y + 1)'
Dim r3, g3, b3 As Integer'Menampung Nilai Emboss'
Dim gambar As New Bitmap(PictureBox1.Image)
PictureBox2.Image = gambar
Dim x, y As Integer
For x = 0 To gambar.Width - 2
For y = 0 To gambar.Height - 2
r1 = gambar.GetPixel(x, y).R 'Mengambil Nilai Intensitas R pixel(x,y)'
g1 = gambar.GetPixel(x, y).G 'Mengambil Nilai Intensitas G pixel(x,y)'
b1 = gambar.GetPixel(x, y).B 'Mengambil Nilai Intensitas B pixel(x,y)'
r2 = gambar.GetPixel(x + 1, y + 1).R 'Mengambil Nilai Intensitas R pixel(x + 1,y + 1)'
g2 = gambar.GetPixel(x + 1, y + 1).G 'Mengambil Nilai Intensitas G pixel(x + 1,y + 1)'
b2 = gambar.GetPixel(x + 1, y + 1).B 'Mengambil Nilai Intensitas B pixel(x + 1,y + 1)'
r3 = Math.Abs(r1 - r2 + 128) ' Rumus Absolut E = (R1 - R2 +128)'
g3 = Math.Abs(g1 - g2 + 128) ' Rumus Absolut E = (G1 - G2 +128)'
b3 = Math.Abs(b1 - b2 + 128) ' Rumus Absolut E = (B1 - B2 +128)'
'Karena nilai Emboss bisa lebih dari 255 maka dilakukan normalisai'
If r3 > 255 Then r3 = 255
If g3 > 255 Then g3 = 255
If b3 > 255 Then b3 = 255
gambar.SetPixel(x, y, Color.FromArgb(r3, g3, b3))
Next
ProgressBar1.Increment(1)
Next
PictureBox2.Refresh()
Untuk Hasil Dari Aplikasi Tersebut akan sepeti ini :
Aplikasi efek timbul atau emboss selesai. jika ingin mendownload aplikasi emboss dengan visual basic klik
disini[TusFiles]
Sekian pembahasan ini mohon maaf bila ada kekurangan dalam hal kata maupun yang lain, semoga bermanfaat. Salam Sukses
gan tutorial vb nya ditambah dong !
ReplyDelete