Tutorial Citra Efek Contrast C#

Contrast adalah proses menaik-turunkan perbedaan nilai terang dan gelap sebuah gambar dengan cara mengalikan nilai derajat keabuan dengan nilai perubah contrast.

kode Contrast

objBitmap5 = new Bitmap(objBitmap1);

float c = Convert.ToSingle(textBox3.Text);

float[] h = new float[256];

int i;

for (i = 0; i < 256; i++) h[i] = 0;

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

int xc = (int)(c * xg);

if (xc >= 255)

xc = 255;

Color new_w = Color.FromArgb(xc, xc, xc);

objBitmap5.SetPixel(x, y, new_w);

h[xc] = h[xc] + 1;

}

pictureBox5.Image = objBitmap5;

//histogram

for (i = 0; i < 256; i++)

{

chart4.Series["Series1"].Points.AddXY(i, h[i]);

}

lanjutan kode diatas

h[xc] = h[xc] + 1;

}

pictureBox5.Image = objBitmap5;

//histogram

for (i = 0; i < 256; i++)

{

chart4.Series["Series1"].Points.AddXY(i, h[i]);

}

Output

Citra Efek Contrast C#Citra Efek Contrast C#

Citra Efek Contrast C#Citra Efek Contrast C#

Keterangan :

Dalam proses naik turunkan perbedaan nilai gelap atau terang idealnya dari suatu kontras menemukan bahwa range angka untuk menghasilkan gambar bagus untuk tampilan yaitu range konstanta 0 – 1. Sudah di buktikan di atas ternyata dengan nilai contrast konstanta 0 gambar akan menjadi hitam dan jika konstanta dibawah 0.5 misalnya. maka akan menghasilkan gambar yang gelap. Semakin mendekati angka 0 maka gambar akan semakin gelap. Dan jika melebihi 2 keatas gambar sudah terang dan sudah menjadi nilai sempurna putih dengan rgb 255. Setiap nilai konstanta ini maka akan dikalikan dengan nilai derajat keabuan hal ini yang akan menjadikan perubahan pada perbedaan nilai terang dan gelap.

Untuk konstanta brightness dengan contrast berbeda, jika kontras menggunakan range konstanta -255 sampai 255 namun untuk konrast hanya menggunakan konstanta 0-1 boleh koma. Karena kontras menggunakan perkalian.

Berikut kontras jika dipotoshop

Citra Efek Contrast C#

semakin kecil nilai konstantanya maka semakin gelap gambar, hal ini membuktikan bahwa contrast dan brightness berbeda. Seperti gambar dibawah.

Citra Efek Contrast C#

jika contrast dalam perbedaan warna terjadi tidak signifikan jika anga dirubah ke titik konstata max/min. berbeda dengan brightness yang berubah terang/gelap secara signifikan terlihat pada gambar disamping.

Kesimpulannya adalah dalam penerapan penggunaan enhancement sangat tergantung kebutuhan user. Ingin citra dengan model seperti apa ada contrast , auto level , brightness, dan invers. Semua sesau kebutuhan dan kualitas citra yang diinginkan. Untuk itu dalam sebelum melakukan enhancement sangat disarankan menggukan gambar grayscale karena hasil bitmap dari gambar tersebut memiliki ukuran lebih kecil dan proses komputasi akan semakin ringan tidak berat.

Tutorial Citra efek Brightness C#

Brightness
Brightness adalah proses menambah terang/gelap sebuah gambar dengan menambah nilai derajat keabuan (xg) dengan nilai perubah brightness (kb).

objBitmap4 = new Bitmap(objBitmap1);
int a = Convert.ToInt16(textBox1.Text);
float[] h = new float[256];
int i;
for (i = 0; i < 256; i++) h[i] = 0;
for (int x = 0; x < objBitmap1.Width; x++)
for (int y = 0; y < objBitmap1.Height; y++)
{
Color w = objBitmap1.GetPixel(x, y);
int xg = (int)((w.R + w.G + w.B) / 3);
int xb = xg + a;
if (xb > 255)
xb = 255;
else if (xb < 0)
xb = 0;
Color new_w = Color.FromArgb(xb, xb, xb);
objBitmap4.SetPixel(x, y, new_w);
h[xb] = h[xb] + 1;
}
pictureBox4.Image = objBitmap4;
//histogram
for (i = 0; i < 256; i++)
{
chart3.Series["Series1"].Points.AddXY(i, h[i]);
}























Output
 Citra efek Brightness C# Citra efek Brightness C#
Keterangan :
Proses penambahan atau pengurangan derajat keabuan suatu gambar, pada dua gambar diatas ketahuan bahwa semakin besar nilai brightnessnya maka semakin cerah suatu gambar. Dan hal ini ditunjukan dengan histogram yang semakin terlihat banyak di sebelah kanan yang artinya gambar dominan warna terang. Jika brightness semakin mendekati angka nol maka derajat keabuan semakin berkurang dan hasilnya gambar akan terlihat semakin gelap dari normal keabuaannya. Dan hal ini dibandingkan antara dua histogram, histogram sebelah kiri masih terlihat banyak grafik nya daripada histogram sebelah kanan.
Jika menggunakan gambar yang sama dan dengan nilai brightness negative maka hasilnya seperti berikut:
 Citra efek Brightness C#
keterangan : pada gambar ketiga ini saya menggunakan nilai brightness negative 100 jika menggunakan positif maka hasilnya seperti gambar diatas cerah dan grafik lebih banyak di kanan. Namun beda halnya dengan nilai negatif bahwa bahwa semakin gelap dan grafik menunjukan lebih banyak muncul di bagian sebelah kiri.
Maka dari itu dari hasil diatas ternyata untuk batas gelap dan terang yaitu jika kurang dari 0 akan menghasilkan gambar gelap dan jika lebih dari 0 maka gambar akan lebih terang.





Efek Citra Auto Level C#

Auto level

objBitmap3 = new Bitmap(objBitmap1);

int xgmax = 0;

int xgmin = 255;

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

if(xg > xgmax) xgmax = xg;

if(xg < xgmin) xgmin = xg;

}

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

int xb = (int)(255 * (xg - xgmin) / (xgmax - xgmin));

Color new_w = Color.FromArgb(xb, xb, xb);

objBitmap3.SetPixel(x, y, new_w);

}

pictureBox3.Image = objBitmap3;

float[] h = new float[256];

int i;

for (i = 0; i < 256; i++) h[i] = 0;

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

if (xg > xgmax) xgmax = xg;

if (xg < xgmin) xgmin = xg;

int xb = (int)(255 * (xg - xgmin) / (xgmax - xgmin));

h[xb] = h[xb] + 1;

}

for (i = 0; i < 256; i++)

{

chart2.Series["Series1"].Points.AddXY(i, h[i]);

}

Output

Citra Auto Level C#

Keterangan:

Pada hasil histogram menunjukan gambar dominan terang Karena grafik terlihat lebih banyak disisi bagian kanan. Auto Level adalah proses merubah nilai minimum sebuah citra menjadi 0 dan nilai maksimum sebuah citra menjadi 255. Pada gambar yang cenderung gelap biasanya nilai maksimumnya tidak sampai 255, dan pada gambar terang biasanya nilai minimumnya tidak mencapai 0. dengan proses auto level maka nilai maksimum akan menjadi 255 dan minimum menjadi 0. Untuk histogram gambar yang asalnya dominan terang maka grafik akan lebih banyak di sebelah kanan.

Berikut ini untuk mengatahui nilai minimum 0 dan maximum 255 yaitu dengan color picker sebagai

Citra Auto Level C#

berikut keterangan: menunjukan bahwa nilai 0 merupakan nilai terendah dalam intensitas warna RGB.

Citra Auto Level C#

Keterangan: menunjukan nilai 255 nilai max dari intensitas warna rgb yang ditunjukan warna putih. Hal ini ketahuan bahwa nilai maksimum dari intestitas warna adalah 255.

membuat citra invers c#

1. code invers c#

objBitmap2 = new Bitmap(objBitmap1);

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

int xi = 255-xg;

Color new_w = Color.FromArgb(xi, xi, xi);

objBitmap2.SetPixel(x, y, new_w);

}

pictureBox2.Image = objBitmap2;

//grafik

float[] h = new float[256];

int i;

for (i = 0; i < 256; i++) h[i] = 0;

for (int x = 0; x < objBitmap1.Width; x++)

for (int y = 0; y < objBitmap1.Height; y++)

{

Color w = objBitmap1.GetPixel(x, y);

int xg = (int)((w.R + w.G + w.B) / 3);

int xi = 255 - xg;

h[xi] = h[xi] + 1;

}

for (i = 0; i < 256; i++)

{

chart1.Series["Series1"].Points.AddXY(i, h[i]);

}

Output

citra invers c#

Keterangan / :

Invers membalik nilai derajat keabuan dari cerah menjadi gelap atau dari gelap menjadi terang. Misalnya dari derajat keabuan 255 akan menjadi 0 begitu juga sebaliknya hal ini karena dipengaruhi dengan rumus

Int xi = 255 – xg . jika dilakukan hitungan seperti berikut:

Contoh derajat keabuan pada table

Derajat keabuan

Derajat invers

35

255 – 35 = 220

55

255 – 55 = 200

115

255 –115 = 140

255

255 – 255 = 0

Dari table diatas dapat diketahui bahwa invers meruapakan lawan dari derajat keabuan kecil menjadi besar dan begitu sebaliknya. Pada gambar yang aslinya titik yang memiliki gambar cerah maka akan menjadi gelap begitu sebaliknya.

Pada gambar histogram gambar lebih dominasi warna gelap karena grafik di sebelah kiri terlihat lebih banyak. Dari pada grafik disisi kiri histogram. Untuk menunjukan apakah histogram pada invers beda objek menghasilkan model histogram yang sama berikut percobaannya

citra invers c#

Dibandingkan dengan gambar awal seperti ini

citra invers c#

Hasil dari kedua histogram ternyata mirip yaitu grafik lebih banyak di bagian kiri yang menandakan gambar dominasi warna gelap.

 

Tutorial Citra Sephia C#

Code program sephia

Citra Sephia C#

Penjelasan program:

Sebenarnya untuk membuat warna sepia rumusnya sama dengan membuat layer 1 warna. Namun ada sedikit perubahan pada rumus R,G,B nya.

Dalam membuat gambar menjadi sepia semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna sepia saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.R” sintak c.R artinya mengambal warna merah dalam suatu variable “c”. kemudian untuk mengatur layer biru semua dengan sintak Color new_w = Color.FromArgb((byte)(c.R), (byte)(c.R*0.82), (byte)(c.R*0.28)); ”. pada rumus sepia ada beberapa perbedaan yaitu ada casting (byte) karena nilai RGB hanya mengenal integer dan maka di casting dikarenakan menggunakan angka pengalinya float.

nah pada sintak ini terdapat pembeda rumus sepia dan normal layer 1 warna karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna sepia contoh seperti ini 0, 0, cr);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut gambar8.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox8.Image = gambar8;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

Citra Sephia C#

Untuk menghasilkan gambar di atas menggunakan rumusan

R = r , G = r*0.82, B = r*0.28

Jika di tampilkan dalam 1 layar gambar maka hasilnya seperti ini:

Citra Sephia C#

Percobaan Sepia

Dengan melakukan beberapa pergantian rumus pada RGBnya supaya mendapatkan hasil sepia yang sesuai kebutuhan. Pada dasarnya sepia dominan warna merah dengan hasil agak kekuning atau agak keclokatan.

Berikut beberapa percobaan dengan beberapa rumus sepia

- Dengan rumus seperti ini Color new_w = Color.FromArgb((byte)(c.R*0.55), (byte)(c.R*0.82), (byte)(c.R));

Menghasilkan gambar seperti ini:

Citra Sephia C#

Keterangan : sepia, warna agak dominan biru dengan rumus diatas.

Percobaan 2. Dengan rumus

Color new_w = Color.FromArgb((byte)(c.R*2.4), (byte)(c.R), (byte)(c.R*0.28)); pada kolom RGB kolom G tidak dikaslikan sama sekali dan hasilny seperti ini

Citra Sephia C#

Keterangan : warna sepia kuning kehijaian namun ada bercak merah yang artinya sepia belum sempurna. Hasilnya tampak pada gambar disamping

Kesimpulan Percobaan

Dari beberapa percobaan membuat gambar sepia diataas dapat disimpulkan bahwa untuk membuat gambar mendekati warna sepia menggunakan dengan rumusan

R = nilai warna merah

G = nilai warna merah * toleransi dari 1-100%

B = nilai warna merah * toleransi dari 1-100%

Dan dengan rumus yang berbeda-beda pula maka menghasilkan warna sepia yang berbeda tergantung komposisi rumor RGB nya.

Citra Grayscale Biru C#

Code program Gray Blue

Citra Grayscale Biru C#

Penjelasan program:

Sebenarnya untuk membuat warna gray rumusnya sama dengan membuat layer 1 warna. Namun ada sedikit perubahan pada rumus R,G,B nya.

Dalam membuat gambar menjadi GRAY BIRU semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna briu saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.B” sintak c.B artinya mengambal warna biru dalam suatu variable “c”. kemudian untuk mengatur layer biru semua dengan sintak “Color new_w = Color.FromArgb(cr, cr, cr); ”.nah pada sintak ini terdapat pembeda rumus gray dan normal layer 1 warna karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna hijau contoh seperti ini 0, 0, cr);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut gambar7.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox7.Image = gambar7;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

Citra Grayscale Biru C#

Citra Grayscale Hijau C#

Code program grey hijau

Citra Grayscale Hijau C#

Penjelasan program:

Sebenarnya untuk membuat warna gray rumusnya sama dengan membuat layer 1 warna. Namun ada sedikit perubahan pada rumus R,G,B nya.

Dalam membuat gambar menjadi GRAY HIJAU semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna hijau saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.G” sintak c.G artinya mengambal warna hijau dalam suatu variable “c”. kemudian untuk mengatur layer hijau semua dengan sintak “Color new_w = Color.FromArgb(cr, cr, cr); ”.nah pada sintak ini terdapat pembeda rumus gray dan normal layer 1 warna karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna hijau contoh seperti ini 0, 0, cr);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut gambar6.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox6.Image = gambar6;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

Citra Grayscale Hijau C#

Citra Grayscale Merah C#

Code program gray merah

Citra Grayscale Merah C#

Penjelasan program:

Sebenarnya untuk membuat warna gray rumusnya sama dengan membuat layer 1 warna. Namun ada sedikit perubahan pada rumus R,G,B nya.

Dalam membuat gambar menjadi GRAY MERAH semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna Merah saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.R” sintak c.R artinya mengambal warna merah dalam suatu variable “c”. kemudian untuk mengatur layer merah semua dengan sintak “Color new_w = Color.FromArgb(cr, cr, cr); ”.nah pada sintak ini terdapat pembeda rumus gray dan normal layer 1 warna karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna merah contoh seperti ini 0, 0, cr);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut gambar5.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox5.Image = gambar5;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

Citra Grayscale Merah C#

Citra Layer Biru C#

Code Program layer biru

citra layer biru c#

Penjelasan program:

Dalam membuat gambar menjadi dominan biru semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai integer antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna BLUE saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.B” sintak c.B artinya mengambal warna Blue dalam suatu variable “c”. kemudian untuk mengatur layer merah semua dengan sintak “Color new_w = Color.FromArgb(0, 0, cr); ”. karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna blue contoh seperti ini 0, 0, cr);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut vertical.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox4.Image = vertical;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

output hasilnya seperti pada gambar dibawah ini.

citra layer biru c#

Citra Layer Hijau C#

Code Program layer hijau

Grayscale Layer Hijau C#

Penjelasan program:

Dalam membuat gambar menjadi dominan hijau semua maka yang perlu di perhatikan adalah

Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai integer antara 0-255 tidak ada angka float dsb. Kemudian sintak :

“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.

Kemudian cara mengambil warna GREEN saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.G” sintak c.G artinya mengambal warna Green alam suatu variable “c”. kemudian untuk mengatur layer merah semua dengan sintak “Color new_w = Color.FromArgb(0, cr, 0); ”. karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna green contoh seperti ini 0, cr, 0);.

Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut horizontal.SetPixel(x,y,new_w);

Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu

pictureBox3.Image = horizontal;

*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.

output hasilnya seperti pada gambar dibawah ini.

Grayscale Layer Hijau C#

Citra Layer Merah C#

Code program layer merah
clip_image001
Penjelasan program:
Dalam membuat gambar menjadi dominan merah semua maka yang perlu di perhatikan adalah
Sintak int cr adalah deklarasi nilai rgb yang disimpan dalam bentuk integer. Tidak bisa selain integer karena nilai rgb memiliki nilai integer antara 0-255 tidak ada angka float dsb. Kemudian sintak :
“Color c = objBitmap.GetPixel(x, y); ” berfungsi untuk mengambil warna setiap pixel dari suatu objek gambar yang ditampug dalam variable c dalam bentuk tipe Color.
Kemudian cara mengambil warna merah saja setiap pixel yang sudah ditentukan diatas yaitu dengan sintak “cr = c.R” sintak c.R artinya mengambal warna red alam suatu variable “c”. kemudian untuk mengatur layer merah semua dengan sintak “Color new_w = Color.FromArgb(cr, 0, 0); ”. karena format umum R,G,B jadi dalam pengisiannya color diisi cr pada blok warna red contoh seperti ini (cr, 0, 0);.
Setelah data ditampung di variable new_w maka tinggal menggambarkan pada object gambar yang sudah dideklarasikan diatas. Untuk menggambarnya dilakukan 1 per satu setiap unit pixelnya. Untuk menggambar object gambar dengan sintak berikut copy.SetPixel(x,y,new_w);
Setelah itu hasil gambar di tampilkan di picturebox dengan sintak yang sederhana yaitu
pictureBox2.Image = copy;
*NB ingat untuk semua data yang di set pada color RGB menggunakan tipe data integer.
output hasilnya seperti pada gambar dibawah ini.
clip_image003











Citra Flip 90 dan 180 derajat C#

1. Putar 90 Derajat

Citra Flip 90 dan 180 derajat C# clip_image003

Code program:

Citra Flip 90 dan 180 derajat C#

Analisa :

Yang ditekankan diisi yaitu membalik citra asal di citra jadi dengan dari lebar jadi tinggi, dan tinggi jadi lebar seperti yang dilingkari biru. Karena memutar ¼ gambar akan merubah bentuk dari yang awal tinggi jadi lebar begitu sebaliknya. Kemudian untuk menyusun bit pada pixel yang ditentukan yaitu dengan menggunakan rumus yang dilingkari merah. Jadi nilai lebar di isi dengan pengurangan nilai Tinggi. Jika salah dalam membuat rumus tersebut maka hasil rotate tidak akan jadi.

2. Putar 180 derajat

Citra Flip 90 dan 180 derajat C# Citra Flip 90 dan 180 derajat C#

Code Program

Citra Flip 90 dan 180 derajat C#

Analisa:

Untuk membuat rotate ½ putaran atau 180 derajat maka di lakukan rumus kombinasi dari flip vertical dan flip horizontal. Rumus seperti yang di lingkari pada gambar diatas. Setalah gambar di flip horizontal maka gambar akan langsung di flip vertical dan menghasilkan ½ putaran.

Membuat Citra Flip Vertical C#

 

Flip Vertical

Flipping vertikal (pencerminan terhadap sumbu-X) terhadap citra A. Ukuran citra adalah

X × Y. Hasil flipping disimpan di dalam citra B. hampir sama dengan flip horizontal tidak ada banyak algoritma yang dirubah hanya di balik saja yang dikurangkan di Tingginya. Terlihat pada kode yang lingkaran merah. Flip vertical hanya membalikkan dari atas ke bawah tidak berkebalikan posisi kanan dan kiri dari suatu citranya.

image citra flip vertical

Code Program :

code flip vertical

keterangan:

algoritmanya:

- mengkopi object gambar lama ke dalam gambar baru setiap pixelnya

- kemudian dalam proses mengkopi di buatkan rumus lebar =  w dan tinggi = tinggi’ – 1- y .

cukup mudah bukan semua sudah ada didalam paket C# yang kita gunakan. selamat mencoba tutorial singkat ini. terima kasih.

 

Membuat Citra Flip Horizontal C#


Flip horizontal adalah memutar gambar atau citra ke cerminannya , jadi gambar atau citra menghadap ke lawan kebalikannya seperti dicerminkan.
gambar asal     dan gambar jadinya
clip_image001 hasil flip horisontal
berikut cara membuatnya,ikuti kode program berikut ini
Code program
code flip horisontal
berikut keterangannya
Flipping horizontal adalah pencerminan pada sumbu-Y (cartesian) atau kalau di gambar dinamakan tinggi gambar garis vertical. Untuk menjadi dari citra A menjadi citra B, yang diberikan oleh:
Yang dirubah hanya lebar atau width nya saja yaitu dengan rumus seperti lingkaran merah diatas.
Gambar[w,h] = gambarJadi [ gambarasal.width -1 – x, y ]  .