Jumat, 16 Oktober 2015

Daemon + Grayscaling



Halo para pembaca blog tutorinaja, kali ini saya akan memberikan tutorial bagaimana caranya kita bisa merubah warna dari gambar yang kita buka menjadi warna lain misalnya grayscale. Penasaran kan? Langsung aja kita mulai.

Pernah gak sih kita kepikiran untuk ingin mengubah gambar yang kita buka menjadi grayscale / hitam putih secara otomatis. Nah di linux, kita bisa melakukan hal tersebut. Pertama – tama, kita perlu untuk membuat sebuah program yang bisa menjalankan sebuah perintah secara otomatis, yaitu adalah daemon. Program daemon ini memungkinkan kita untuk bisa menjalankan sebuah perintah yang ada secara otomatis tanpa harus kita run berulang – ulang kali. Ini dia contoh template dari daemon:


Nah bisa kita liat sendiri, ini adalah contoh implementasi dari daemon. Lalu, kita harus memasukkan perintah yang ingin kita jalankan secara otomatis kedalam codingan ini. Kita akan menempatkan perintahnya di while(1), di bari ke – 4 sebelum terakhir. Kalau kita lihat, di dalam while juga ada fungsi sleep() disitu. Itu berfungsi untuk mendelay proses yang ada di dalamnya. Waktu delay kita tentukan sendiri dengan menginput detiknya di dalam kurung dari fungsi sleep(). Misal bila kita ingin mendelay prosesnya selama 2 menit, maka kita kita tulis sleep(120). Jadi, nanti codingan perintah untuk misalnnya pada bahasan ini adalah mengubah gambar berwarna menjadi grayscale otomatis, akan dimasukkan di dalam while tersebut. Mungkin akan lebih jelas lagi bila kita sudah memasukkan codingan merubah gambar menjadi grayscalenya ke dalam while, ini dia contohnya:

Oiya sebelumnya maaf gambarnya kepotong karena kodingannya kepanjangan jadi gak bisa discreenshoot hehe. 


Pertama untuk merubah sebuah gambar menjadi grayscale, tentu kita harus tau mana yang gambar. Jadi, kita menggunakkan fungsi ps aux | grep .jpg | grep –v grep | awk 'END{print $NF} untuk mengetahui apakah ada proses yang sedang terjadi yang proses itu merupakan proses membuka gambar dengan format .jpg. Fungsi ps aux sendiri merupakan fungsi untuk melihat proses – proses apa saja yang sedang berjalan, sedangkan grep .jpg berfungsi untuk menangkap sebuah string dengan keyword .jpg. Jadi ketika proses yang sedang berjalan sudah kita ketahui, maka kita mencari mana yang ada .jpgnya, yang mengindikasikan kalo kita sedang membuka gambar. Fungsi popen() berfungsi untuk mereturn nilai dari fungsi yang berada di dalam kurungnya. Dengan begitu, kita sudah mendapatkan prosesnya, kita akan mendapatkan nama dari .jpg. Setelah itu kita masukkan ke variabel baru yang dalam contoh ini adalah fp.


Gambar diatas merupakan fungsi yang akan kita gunakan mempersiapkan nama dari gambar grayscale yang kita buat. 

Fungsi di baris pertama dari if diatas adalah untuk menghilangkan .jpg dari nama file yang sedang kita buka yang sebelumnya namanya telah kita masukkan ke array tipe_file. Jadi nanti kita hanya mendapatkan namanya saja, misal bila gambar yang dibuka namanya “gambar.jpg”, maka kita akan mendapat “gambar” saja. Lalu char nama berfungsi sebagai penyimpan nama file dari  gambar grayscalenya. Karena saya menginginkan agar nama outputnya menjada (nama gambar)_copy.jpg maka saya menuliskannya seperti itu.
 
Setelah itu, baru kita masuk ke converting gambar ke grayscale dengan:


if disitu berfungsi untuk hanya membuat gambar grayscale yang kita buka sekali saja. Karena kalau tidak seperti itu, komputer akan terus menerus membuat gambar grayscale dari gambar yang kita buka berulang – ulang kali sampai proses dari daemonnya kita kill / matikan di terminal. Dan akibatnya komputer kita akan lag. Lalu tiga baris fungsi yang ada di dalamnya berfungsi untuk menconvert gambar menjadi grayscale.

Bagaimana? Mudah sekali kan, semoga tutorial kali ini bermanfaat dan bisa dipahami. Jangan lupa tinggalkan komentar agar blog ini bisa lebih baik lagi. Sampai jumpa, terima kasiiiihh.




Tidak ada komentar:

Posting Komentar