Invert dan Masking Gambar pada Processing

panduaji

0 Comment

Link
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.
Invert dan Masking Gambar pada Processing 1

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.

Tags:

Share:

Related Post

Leave a Comment