Invert dan Masking Gambar pada Processing

Selasa, Maret 20, 2012

Tugas kuliah masih tetap dekat dengan processing, salah satu software open source untuk pemrograman multimedia. Meski sampai saat ini saya belum bisa memecahkan bagaimana menggunakan fitur video di processing linux. Setidaknya tugas yang saya share kali ini tidak menggunakan fitur video. Hanya bermain-main dengan gambar yang di masking dan invert. Hingga hasilnya bisa seperti gambar di bawah ini.

Tugas kali ini adalah bagaimana membuat sebuah lingkaran yang berguna sebagai masking yang menampilkan gambar hasil invert gambar yang asli.  Seperti yang terlihat pada gambar diatas. Lingkaran akan mengikuti kemanapun mouse akan pergi, selain itu gambar yang diinvert hanya yang ada dalam lingkaran. Jadi bagaimana membuatnya? Langsung saja mengikuti beberapa langkah berikut.

Import sebuah gambar pada sketch processing dengan cara klik sketch >Add file>Browse gambarnya dan ingat nama file yang sudah kita import. Case sensitive, huruf besar kecil harus benar-benar sama.

Siapkan dua buah variabel gambar dan satu buah variabel grafik seperti berikut
PImage img;
PImage img2;
Setelah itu buat void setup dan load satu gambar sebanyak dua kali. Gambar pada variabel pertama untuk gambar aslinya sedangkan gambar pada variabel kedua untuk gambar hasil invert yang akan tampak saat di masking.
 img = loadImage("gbr_01.jpg");
 img2 = loadImage("gbr_01.jpg");
Isi variabel pg dengan perintah createGraphics(640, 480, P2D, hal ini memungkinkan kita untuk membuat sebuah grafik yang dibaca sebagai sebuah gambar, sehingga dapat digunakan untuk masking.

Beri filter INVERT pada variabel img2, agar img2 berisi gambar yang sudah di invert dan atur ukuran jendelanya agara sama dengan ukuran gambar yang kita load, sehingga tidak ada bagian gambar yang terpotong.
 img2.filter(INVERT);
 size(img.width, img.height);
Buat void draw yang berisi pengaturan background image.
  background(img);
Setelah itu buat ellipse dengan ukuran 100 x 100 yang mengikuti pergerakan mouse dalam pg.beginDraw
  pg.beginDraw();
  pg.background(0); 
  pg.ellipse(mouseX, mouseY, 100, 100); 
  pg.endDraw();
Masking dan tampilkan gambarnya
img2.mask(pg);
  image(img2,0,0);
Berikut script lengkap untuk membuat gambar masking seperti diatas.
PImage img;
PImage img2;
PGraphics pg;

void setup(){
 img = loadImage("gbr_01.jpg");
 img2 = loadImage("gbr_01.jpg");
 pg = createGraphics(640, 480, P2D);
 img2.filter(INVERT);
 size(img.width, img.height);
}

void draw(){
  background(img);
  pg.beginDraw();
  pg.background(0); 
  pg.ellipse(mouseX, mouseY, 100, 100); 
  pg.endDraw();
  img2.mask(pg);
  image(img2,0,0);

}

Semoga faham dengan penjelasan yang saya berikan, jika ada kesalahan mohon untuk dikoreksi. Semoga bermanfaat.

You Might Also Like

0 comments

Komentar spam enggak bakal aku approve lho. Gunakan nama asli bukan keyword :p

Facebook

Subscribe