A. Pendahuluan
Dalam pengerjaan Praktikum Pengolahan Citra di Program Studi Teknik Elektronika Politeknik Elektronika Negeri Surabaya menggunakan program Visual C# dengan Visual Studio 2017 Community. Berikut ini adalah
lingkungan kerja pada Visual Studio 2017.
Gambar 1 : Visual Studio 2017
B.
Load Gambar Dan Save
Gambar
Dalam pembuatan program Load Gambar
Dan Save Gambar menggunakan sebuah form, dua button dan satu picture box.
Berikut adalah desain layout nya.
Gambar 2 : Form Load Gambar Dan
Save Gambar
Setalah dibuat desain form nya maka
kita mulai memprogramnya, dibawah ini adalah program untuk Load Gambar Dan Save
Gambar.
1.
using System;
2.
using System.Collections.Generic;
3.
using System.ComponentModel;
4.
using System.Data;
5.
using System.Drawing;
6.
using System.Linq;
7.
using System.Text;
8.
using System.Threading.Tasks;
9.
using System.Windows.Forms;
10.
11.
namespace LoadSaveGambar
12.
{
13.
public partial class Form1 : Form
14.
{
15.
16.
public Form1()
17.
{
18.
InitializeComponent();
19.
}
20.
21.
//Source code Button 1 untuk ambil gambar
22.
private void button1_Click(object sender, EventArgs e)
23.
{
24.
OpenFileDialog ofd1 = new OpenFileDialog();
25.
26.
//Kondisi ketika akan membuka file gambar
27.
if (ofd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
28.
{
29.
//file gambar siap ditampilkan di picture box1
30.
pictureBox1.Image = new Bitmap(ofd1.FileName);
31.
}
32.
}
33.
34.
//Source code Button 2 untuk simpan gambar
35.
private void button2_Click(object sender, EventArgs e)
36.
{
37.
SaveFileDialog sfd1 = new SaveFileDialog();
38.
//Memfilter Gambar yang disimpan dengan ektensi .Png
39.
sfd1.Filter = "Image files (*.png)|*.png";
40.
41.
//Kondisi jika gambar sudah siap untuk disimpan
42.
if (sfd1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
43.
{
44.
45.
//Proses penyimpanan gambar
46.
pictureBox1.Image.Save(sfd1.FileName, System.Drawing.Imaging.ImageFormat.Png);
47.
}
48.
}
49.
}
50.
}
Setelah selesai di program maka kita coba menjalankan
program. Setelah di klik Start maka akan muncul form seperti di bawah ini.
Gambar 3 : Form Load Gambar Dan
Save Gambar Ketika di Jalankan
Ketika button Load Image diklik maka akan muncul file
dialog untuk memilih gambar yang akan di tampilkan, lalu pilih gambar,
kemudian klik open.
Gambar 4 : Pemilihan gambar untuk
ditampilkan di program
Setelah gambar dipilih maka hasilnya akan ditampilkan
di program yang kita buat seperti pada gambar dibawah ini.
Kemudian klik Save Image untuk menyimpan gambar, maka
akan muncul file dialog untuk menyatakan gambar akan disimpan dimana. Untuk
kali ini gambar sudah difilter akan disimpan dalam format .png.
Gambar 6 : File dialog penyimpanan
gambar
Kemudian setelah di file dialog gambar diberi nama,
lalu di klik save maka hasilnya gambar akan tersimpan di lokasi folder yang
sudah dipilih, dan gambar akan tersimpan dengan extensi .png.
Gambar 7 : Gambar tersimpan dengan
extensi .png
C.
Load Gambar, Membaca Dan
Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar
Untuk kali ini pembuatan program untuk Load Gambar,
Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar masih tetap menggunakan
Visual C# dengan Visual Studio 2017.
Siapkan form baru seperti biasa, kemudian tambahkan
dua picture box dan enam button untuk load image, copy image, flip horizontal,
flip vertical, rotate 90o dan rotate 180 o dengan tampilan sebagai berikut.
Gambar 8 : Gambar form untuk Load
Gambar, Membaca Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar
Setalah dibuat desain form nya maka
kita mulai memprogramnya, dibawah ini adalah program untuk Load Gambar, Membaca
Dan Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar.
1.
using System;
2.
using System.Collections.Generic;
3.
using System.ComponentModel;
4.
using System.Data;
5.
using System.Drawing;
6.
using System.Linq;
7.
using System.Text;
8.
using System.Threading.Tasks;
9.
using System.Windows.Forms;
10.
11.
namespace MembacaMengcopyGambar
12.
{
13.
public partial class Form1 : Form
14.
{
15.
16.
17.
public Form1()
18.
{
19.
InitializeComponent();
20.
}
21.
22.
private void button1_Click(object sender, EventArgs e)
23.
{
24.
//Load Image
25.
OpenFileDialog ofd2 = new OpenFileDialog();
26.
if (ofd2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
27.
{
28.
pictureBox1.Image = new Bitmap(ofd2.FileName);
29.
}
30.
}
31.
32.
private void button2_Click(object sender, EventArgs e)
33.
{
34.
//Copy Image
35.
Bitmap bmp1 = new Bitmap(pictureBox1.Image);
36.
Bitmap bmp2 = new Bitmap(pictureBox1.Image);
37.
for (int x = 0; x < bmp1.Width; x++)
38.
for (int y = 0; y < bmp1.Height; y++)
39.
{
40.
Color w = bmp1.GetPixel(x, y);
41.
bmp1.SetPixel(x, y, w);
42.
}
43.
44.
pictureBox2.Image = bmp2;
45.
}
46.
47.
private void button3_Click(object sender, EventArgs e)
48.
{
49.
//Flip Horizontal
50.
Bitmap bmp3 = new Bitmap(pictureBox1.Image);
51.
Bitmap bmp4 = new Bitmap(pictureBox1.Image);
52.
for (int x = 0; x < bmp3.Width; x++)
53.
for (int y = 0; y < bmp3.Height; y++)
54.
{
55.
Color w = bmp3.GetPixel(x, y);
56.
bmp4.SetPixel(bmp3.Width - 1 - x, y, w);
57.
}
58.
pictureBox2.Image = bmp4;
59.
60.
}
61.
62.
private void button4_Click(object sender, EventArgs e)
63.
{
64.
//Flip Vertical
65.
Bitmap bmp5 = new Bitmap(pictureBox1.Image);
66.
Bitmap bmp6 = new Bitmap(pictureBox1.Image);
67.
for (int x = 0; x < bmp5.Width; x++)
68.
for (int y = 0; y < bmp5.Height; y++)
69.
{
70.
Color w = bmp5.GetPixel(x, y);
71.
bmp6.SetPixel(x, bmp5.Height - 1 - y, w);
72.
}
73.
pictureBox2.Image = bmp6;
74.
}
75.
76.
77.
78.
private void button5_Click(object sender, EventArgs e)
79.
{
80.
//90 Derajat
81.
Bitmap bmp7 = new Bitmap(pictureBox1.Image);
82.
Bitmap bmp8 = new Bitmap(pictureBox1.Image);
83.
for (int x = 0; x < bmp7.Width; x++)
84.
for (int y = 0; y < bmp7.Height; y++)
85.
{
86.
Color w = bmp7.GetPixel(x, y);
87.
bmp8.SetPixel(bmp7.Height - 1 - y, x, w);
88.
}
89.
pictureBox2.Image = bmp8;
90.
}
91.
92.
private void button6_Click(object sender, EventArgs e)
93.
{
94.
//180 Derajat
95.
Bitmap bmp9 = new Bitmap(pictureBox1.Image);
96.
Bitmap bmp10 = new Bitmap(pictureBox1.Image);
97.
for (int x = 0; x < bmp9.Width; x++)
98.
for (int y = 0; y < bmp9.Height; y++)
99.
{
100.
Color w = bmp9.GetPixel(x, y);
101.
bmp10.SetPixel(bmp9.Width - 1 - x, bmp9.Height - 1 - y, w);
102.
}
103.
pictureBox2.Image = bmp10;
104.
}
105.
}
106.
}
Setelah selesai di program maka kita coba menjalankan
program. Setelah di klik Start maka akan muncul form seperti di bawah ini.
Gambar 9 : Program Load Gambar, Membaca Dan
Mencopy Data Gambar, Flip Gambar Dan Rotate Gambar ketika dijalankan
Ketika button Load image diklik, maka akan masuk file
dialog untuk memilih gambar yang akan ditampilkan
Kemudian gambar
akan ditampilkan di picturebox 1. Untuk diproses selanjutnya.
Setelah gambar
tampil seperti pada gambar diatas, maka kita bias mulai untuk melakukan Copy
Image, Flip Horizontal, Flip Vertical, rotate 90o dan rotate 180
o . Untuk acuan gambar tetap
menggunakan picture box1, sehingga jika dilakukan operasi-operasi seperti
diatas maka gambar akan tetap mengacu pada gambar di picture box1 seperti arah
gambar, warna, dll. Dibawah ini hanya saya tampilkan gambar-gambar operasi yang
dilakukan.
-
Pada komponen PictureBox, terdapat segitiga kecil dibagian atas yang
digunakan untuk mengubah size-mode. Jelaskan apa perbedaan masing-masing
size-mode:
Ø Normal
Ø StretchImage
Ø AutoSize
Ø CenterImage
Ø Zoom
Member name
|
Keterangan
|
Normal
|
Gambar ditempatkan di sudut kiri
atas PictureBox. Gambar terpotong jika lebih besar dari PictureBox yang ada
di dalamnya.
|
StretchImage
|
Gambar di dalam PictureBox
diregangkan atau menyusut agar sesuai dengan ukuran PictureBox.
|
AutoSize
|
PictureBox berukuran sama dengan
ukuran gambar yang dikandungnya.
|
CenterImage
|
Gambar ditampilkan di tengah jika
PictureBox lebih besar dari gambar. Jika gambar lebih besar dari PictureBox,
tepi luarnya akan terpotong.
|
Zoom
|
Ukuran gambar meningkat atau
menurun mempertahankan rasio ukuran.
|
-
Jelaskan apa fungsi dari perintah pictureBox1.Image = File;
Maksud dari pernyataan
diatas adalah perintah untuk membuka gambar yang berasal dari file.
-
Tambahkan menu pada project Image2 yang telah dikerjakan sebelumnya
untuk Flip Vertical, Rotate 90o dan Rotate 180o
Menu sudah include di atas.
Tidak ada komentar:
Posting Komentar