Sabtu, 17 Oktober 2015

Membuat Script untuk mengubah gambar berwarna berubah menjadi gambar grayscale

Halo, saya kembali lagi nih
Beberapa waktu lalu saya telah diajari tentang fungsi daemon umtuk membuat bebrapa program keren.

Taukah anda tentang apa itu daemon?
Ini kita berbicara daemon dalam OS Linux lho . . .

Jadi daemon bisa didefinisikan sebagai metode untuk membuat suatu "scheduled command". Biasanya metode ini digunakan untuk maintenance PC.

Kali ini saya telah diajari untuk membuat program daemon menggunakan bahasa C.
berikut script programnya:

#include<sys/types.h>
#include<sys/stat.h>
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<errno.h>
#include<unistd.h>
#include<syslog.h>
#include<string.h>

int main(void)
{
    pid_t pid, sid;

strcpy(convert,"convert ");
strcpy(tengah, "-colorspace Gray ");
    pid = fork();
    if (pid < 0) {
            exit(EXIT_FAILURE);
    }

    if (pid > 0) {
            exit(EXIT_SUCCESS);
    }

    umask(0);

    sid = setsid();
    if (sid < 0) {
            exit(EXIT_FAILURE);
    }


    if ((chdir("/")) < 0) {
            exit(EXIT_FAILURE);
    }

    close(STDIN_FILENO);
    //close(STDOUT_FILENO);
    close(STDERR_FILENO);


    while (1) {
        printf("Hello World/n");
sleep(5);
    }
    exit(EXIT_SUCCESS);
}


Sebetulnya inti atau basic operation dari program tersebut terletak pada command "while(1){ ". Sleep disitu berfungsi sebagai jeda antar berjalannya perintah tersebut ke perintah tersebut lagi.

setelah selesai membuat program tersebut jangan lupa dicompile dengan perintah "gcc -o <nama sumber>.c <nama yang diinginkan>". bila berhasil maka akan muncul file baru yang berbentuk persegi ungu.



jika ingin menjalankannya jalankan file yang telah anda compile tadi. atau dalam terminal anda ketik" ./<nama yg sudah di compile>". Maka program tersebut akan jalan, dan anda bisa melihat hasilnya.

--------------------

Dan jika anda merasa sudah cukup, hentikan daemon anda dengan cara mangetikkan "pkill <namaExecutableYang Berjalan>"

Sekarang mari kita mengubah gambar berwarna menjadi grayscale
perintah yang digunakan adalah "convert <PathGambar><NamaGambar.jpg> -colorspace Gray <PathTujuan><NamafileBaru.jpg>"

Dalam Linux, terdapat aplikasi menarik. Fungsi aplikasi tersebut adalah aplikasi manipulasi citra. nama aplikasi tersebut adalah "ImageMagick". Aplikasi ini pula yang dapat mendukung command "convert " diatas.

Dan kini kita ingin membuat gambar yang kita klik langsung berubah warna kan?
kita harus bisa tahu terlebih dahulu tentang proses yang berjalan. Dna itu bisa diakses dengan perintah "ps x". dan karena kita ingin mencari program "imageViewer" yang kita jalankan, kita perlu modifikasi perintah "ps x" tadi menjadi "ps x | grep ".jpg" " fungsimya umtuk mendapatkan nama dan alamat path file yang kita buka tersebut. lalu karena kita hanya membutuhkan nama file tersebut, maka kita bisa langsung menggunakan perintah "awk -F'/' '{print $8}'". Fungsi perintah tersebut adalah untuk memoting string yang telah kita dapatkan. Dan fungsi "cut -d ' ' -f1" berarti memotong kata-kata berdasarkan spasi. f1 berarti kata pertama. "cut -d ' .' -f1" berarti memotong kata berdasarkan tanda ".", karena kita hanya butuh nama file tersebut saja.

Jadi script yang sudah jadi akan tampak seperti berikut:

#!/bin/bash
cd /home/mhr7/Documents/Kuliah/Sisop/Modul2
active=$(ps x | grep '.jpg' | awk -F'/' '{print $8}' | cut -d ' ' -f1 | cut -d '.' -f1)".jpg"
actived=$(ps x | grep '.jpg' | awk -F'/' '{print $8}' | cut -d ' ' -f1 | cut -d '.' -f1)"_copy.jpg"
convert $active -colorspace Gray $actived

Save file tersebut dalam format .sh layaknya script bash biasa.

Tunggu!!!!!
kenapa di awal ada perintah "cd"???
Lalu gimana cara gabungin bash script ke script yang memiliki format .c?

Ini dia caranya . . . .

Editlah script anda yang berformat c. Lalu fokuskan pada basic opertaion anda.
while (1) {
        printf("Hello World/n");
sleep(5);
    }
Ubahlah " printf("Hello World/n"); " menjadi "system("bash <pathFile>/NamaScriptBash.sh"); "
contohnya seperti ini:
"system("bash /home/mhr7/Documents/Kuliah/Sisop/Modul2/No2.sh"); "

setelah itu compile lagi dengan menggunakan command gcc seperti sebelumnya.
Lihatlah apa yang terjadi.

Ketika anda klik gambar dalam folder tempat sourceCode.sh anda berasal, maka tiba-tiba akan muncul gambar grayscale disebelahnya :D

HOREE !!!!
Mission Success !!!!

sekian dahulu ilmu yang bisa saya bagi
Kalau masih bingung, contact saja saya melalui email yang tersedia di blog ini :D
Terimakasih