fungsi setpixel dan getpixel untuk copy dan flip citra

11
LAPORAN PRAKTIKUM 1.2 “FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA” Pengolahan Citra JURUSAN TEKNIK INFORMATIKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA LUSI KURNIA SARI 3D4ITB/2110121049

Upload: lusi-kurniasari

Post on 16-Jan-2016

294 views

Category:

Documents


8 download

DESCRIPTION

FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

TRANSCRIPT

Page 1: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

laporan praktikum 1.2 “fungsi setpixel dan getpixel untuk copy dan flip citra”

JURUSAN TEKNIK INFORMATIKA

LUSI KURNIA SARI 3D4ITB/2110121049

Page 2: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

LAPORAN PRAKTIKUM 1.2“Fungsi GetPixel dan SetPixel untuk Copy dan Flip Citra”

MEMBACA DATA GAMBAR DARI FILEPetunjuk Praktikum :Langkah-langkah membuat aplikasi untuk membaca data setiap pixel pada sebuah gambar. 1. Buka Visual Studio .Net 2010 2. Pilih File New New Project 3. Pilih Visual C# [Windows Forms Application]. 4. Isi Name dan Solution Name sesuai keinginan misal pada program yang saya buat dengan nama “Pengcit_1103” kemudian tekan tombol [OK]. 5. Setelah muncul form new project, tambahkan 1 Button, 1 PictureBox dan 1 OpenFileDialog. 6. Ubah text Button1 menjadi “Load”. Atur size-mode pada pictureBox1 dengan

StrecthImage. StretchImage  Menyamakan rasio gambar dengan objek PictureBox, bisa dengan memampatkan lebar atau tinggi. Mungkin gambar yang dihasilkan bisa menyebabkan distorsi untuk membuat gambar yang mempunyai rasio yang sama dengan PictureBox. Makanya untuk memilih jenis SizeMode ini sangat disarankan untuk memilih gambar yang mempunyai perkiraan dimensi yang sama (atau paling tidak mempunyai aspek rasio yang sama). 

7. Aturlah tampilan seperti gambar dibawah ini.

Agar bisa seperti tampilan gambar diatas, ubahlah pada bagian properties – BackgroundImage import gambar sesuai yang diinginkan untuk backround gambar. Untuk mengubah warna button pada properties - BackColor ubah warna pink, agar model button seperti gambar diatas ubah menjadi Flat pada properties – FlatStyle.

8. Tambahkan sebuah obyek Bitmap dengan nama objBitmap sebelum baris kode public From1()

Untuk penampung data gambar maka ditambahkan satu obyek bitmap baru di class Form1.

9. Double click Button1 dan tambahkan program berikut :

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 3: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

Analisa Program :

Fungsi yang tidak mengembalikan nilai button1_Click adalah fungsi yang akan dijalankan ketika tombol dengan nama btnLoad diberikan event click. Terbukti fungsi ini memiliki 2 parameter sender dan EventArgs. Di dalamnya terdapat variabel d bertipe DialogResult. D ini akan diisi dengan status pemilihan yang diberikan oleh user melalui object openFileDialog1.ShowDialog(). Jadi file gambarnya sendiri akan disimpan ke dalam object openFileDialog1. Kemudian diberikan pengecekan, jika d adalah "pilihan user berupa tombol" OK, maka variabel File bertipe Image yang tadinya kosong akan diisi dengan FileName dari objek openFileDialog1. Kemudian gambar dalam variabel File tersebut akan ditampilkan di pictureBox1. 

MEMBACA DAN MENGCOPY DATA GAMBARPetunjuk Praktikum :Berikut ini adalah langkah-langkah membuat aplikasi yang dapat mengambil data warna setiap pixel pada gambar dengan melanjutkan project Pengcit_1103 yang telah dikerjakan sebelumnya. 1. Pada form di Project Pengcit_1103, tambahkan 1Button dan 1PictureBox. 2. Ubah text Button2 menjadi “Copy”3. Pada PictureBox2, atur size-mode dengan StrecthImage.4. Atur tampilan seperti gambar dibawah ini

5. Tambahkan satu obyek bitmap baru di class Form1 untuk penampung data gambar. Beri nama object Bitmap baru dengan nama objBitmap1 dan letakkan setelah object Bitmap objBitmap;

6. Double click pada Button2 dan tambahkan program berikut:

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 4: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

Analisa Program :

Program di atas berfungsi untuk meng-copy file image yang di-load di PictureBox1 ke PictureBox2. Sebelumnya, inisialisasi terlebih dahulu komponen image hasil (objBitmap1) dengan image asal (objBitmap) kemudian menentukan panjang dan lebar dari image asal. Setelah diperoleh panjang dan lebar, proses berikutnya adalah membaca data RGB dari pixel(x,y) image asal dengan menggunakan fungsi objBitmap.GetPixel(x,y) dan dilanjutkan dengan memberikan nilai warna RGB pada pixel(x,y) dalam objBitmap1 dengan menggunakan fungsi objBitmap.SetPixel(x,y,w).

7. Jalankan program kemudian tekan tombol load untuk memilih gambar dari hardisk. Kemudian tekan tombol Copy. Maka gambar akan tercopy pada PictureBox2.

FLIP HORISONTALPetunjuk Praktikum:Berikut ini adalah langkah-langkah untuk mengambil data warna setiap pixel dan meletakkannya secara flip horisontal dengan melanjutkan project Pengcit_1103 yang sebelumnya. 1. Pada form di Project Pengcit_1103, tambahkan 1Button dan dan beri text “Flip

Horisontal”. 2. Atur tampilan 3. Double click pada Button3 (Flip Horisontal) dan tambahkan program berikut :

Analisa Program :

Program di atas digunakan untuk mengcopy gambar secara flip horisontal pada PictureBox3. Pada dasarnya proses flip horisontal adalah meletakkan titik horisontal secara berkebalikan dimana setiap pixel x pada gambar asal (objBitmap) akan diletakkan di pixel width-(x+1) pada gambar hasil (objBitmap1).

4. Jalankan program kemudian tekan tombol load untuk memilih gambar dari hardisk. Kemudian tekan tombol Flip Horisontal. Maka gambar akan tercopy secara flip horisontal pada PictureBox3.

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 5: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

FLIP VERTIKALPetunjuk Praktikum:Berikut ini adalah langkah-langkah untuk mengambil data warna setiap pixel dan meletakkannya secara flip Vertikal dengan melanjutkan project Pengcit_1103 yang sebelumnya. 1. Pada form di Project Pengcit_1103, tambahkan 1Button dan dan beri text “Flip Vertikal”. 2. Atur tampilan 3. Double click pada Button4 (Flip Vertikal) dan tambahkan program berikut:

Analisa Program :

Program di atas digunakan untuk mengcopy gambar secara flip vertikal pada PictureBox4. Pada dasarnya proses flip vertikal adalah meletakkan titik vertikal secara berkebalikan dimana setiap pixel y pada gambar asal (objBitmap) akan diletakkan di pixel width-(y+1) pada gambar hasil (objBitmap1).

4. Jalankan program kemudian tekan tombol load untuk memilih gambar dari hardisk. Kemudian tekan tombol Flip Vertikal. Maka gambar akan tercopy secara flip vertikal pada PictureBox4.

Rotasi 180

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 6: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

Petunjuk Praktikum:Berikut ini adalah langkah-langkah untuk mengambil data warna setiap pixel dan meletakkannya dengan Rotasi 180 derajat dengan melanjutkan project Pengcit_1103 yang sebelumnya. 1. Pada form di Project Pengcit_1103, tambahkan 1Button dan dan beri text

“Rotasi 180”. 2. Atur tampilan 3. Double click pada Button5 (Rotasi 180) dan tambahkan program berikut:

Analisa Program :

Program di atas digunakan untuk mengcopy gambar secara rotate atau diputar 180 derajat pada PictureBox5. Proses rotate 180 derajat adalah meletakkan setiap pixel x dan pixel y pada gambar asal (objBitmap) menjadi pixel width-(x+1) dan pixel height-(y+1) pada gambar hasil (objBitmap1).

4. Jalankan program kemudian tekan tombol load untuk memilih gambar dari hardisk. Kemudian tekan tombol Rotasi 180. Maka gambar akan tercopy secara Rotasi 180 pada PictureBox5.

Rotasi 90Petunjuk Praktikum:Berikut ini adalah langkah-langkah untuk mengambil data warna setiap pixel dan meletakkannya dengan rotasi 90 derajat dengan melanjutkan project Pengcit_1103 yang sebelumnya. 1. Pada form di Project Pengcit_1103, tambahkan 1Button dan dan beri text

“Rotasi 90”. 2. Atur tampilan 3. Double click pada Button6 (Flip Horisontal) dan tambahkan program berikut:

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 7: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

Analisa Program :

Program di atas digunakan untuk mengcopy gambar secara rotate atau diputar 90 derajat pada PictureBox6. Proses rotate 90 derajat adalah meletakkan setiap pixel x pada gambar asal (objBitmap) menjadi pixel height-(y+1) pada gambar hasil (objBitmap1).

4. Jalankan program kemudian tekan tombol load untuk memilih gambar dari hardisk. Kemudian tekan tombol Rotasi 90. Maka gambar akan tercopy secara Rotasi 90 pada PictureBox6.

Merancang Model Form :

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Page 8: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

Hasil Output Program :

Koding Program lengkap :

using System;using System.Collections.Generic;using System.ComponentModel;

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

metode untuk mengimport object lain yang akan

digunakan di dalam aplikasi

Page 9: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

namespace Pengcit_1103{ public partial class Form1 : Form { Bitmap objBitmap; Bitmap objBitmap1; public Form1() { InitializeComponent(); }

private void button1_Click(object sender, EventArgs e) { DialogResult d = openFileDialog1.ShowDialog(); if (d == DialogResult.OK) { objBitmap = new Bitmap(openFileDialog1.FileName); pictureBox1.Image = objBitmap; } }

private void button2_Click(object sender, EventArgs e) { objBitmap1 = new Bitmap(objBitmap); for(int x=0; x<objBitmap.Width; x++) for (int y = 0; y < objBitmap.Height; y++) { Color w = objBitmap.GetPixel(x, y); objBitmap1.SetPixel(x, y, w); } pictureBox2.Image = objBitmap1; }

private void button3_Click(object sender, EventArgs e) { objBitmap1 = new Bitmap(objBitmap); for (int x = 0; x < objBitmap.Width; x++) for (int y = 0; y < objBitmap.Height; y++) { Color w = objBitmap.GetPixel(x, y); objBitmap1.SetPixel(objBitmap.Width-1-x, y, w); } pictureBox3.Image = objBitmap1; }

private void button4_Click(object sender, EventArgs e) { objBitmap1 = new Bitmap(objBitmap); for (int x = 0; x < objBitmap.Width; x++) for (int y = 0; y < objBitmap.Height; y++) { Color w = objBitmap.GetPixel(x, y); objBitmap1.SetPixel(x, objBitmap.Height - 1 - y, w); } pictureBox4.Image = objBitmap1; }

private void button5_Click(object sender, EventArgs e) { objBitmap1 = new Bitmap(objBitmap); for (int x = 0; x < objBitmap.Width; x++) for (int y = 0; y < objBitmap.Height; y++) { Color w = objBitmap.GetPixel(x, y); objBitmap1.SetPixel(objBitmap.Width- 1 - x, objBitmap.Height - 1 - y, w);

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra

Namespace digunakan untuk memberikan nama project sehingga

project akan lebih mudah untuk diidentifikasi 

Bitmap : Menampung data gambar

Page 10: FUNGSI SETPIXEL DAN GETPIXEL UNTUK COPY DAN FLIP CITRA

} pictureBox5.Image = objBitmap1; }

private void button6_Click(object sender, EventArgs e) { objBitmap1 = new Bitmap(objBitmap); for (int x = 0; x < objBitmap.Width; x++) for (int y = 0; y < objBitmap.Height; y++) { Color w = objBitmap.GetPixel(x, y); objBitmap1.SetPixel(objBitmap.Width-1-y, x,w); } pictureBox6.Image = objBitmap1; }

}}

Praktikum 1.2 – Fungsi SetPixel dan GetPixel Lusi Kurnia Sari (3D4ITB/2110121049)

Untuk Copy dan Flip Citra