Sabtu, 17 Oktober 2015

Gambar Berwarna menjadi Gambar Hitam Putih Melalui Linux

Kali ini saya akan membahas bagaimana membuat gambar berwarna menjadi gambar hitam putih dengan menggunakan bash terminal Linux. Tidak hanya dengan image editor / photo editor kita dapat merubah warna gambar menjadi hitam putih.  Sebelum memulai mengoding di bash terminal linux teman-teman harus menginstall Imagemagick pada linux anda cara meninstall image magick dengan menulis  "sudo apt-get install imagemagick" dengan koneksi internet yang sedang terhubung.
Setelah melalukan install image magick tulisakan kodingan berikut di terminal linux.

#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;
    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);
    FILE *fp;

    while(1)
    {
        char file_type[100];
        fp = popen("ps aux | grep .jpg | grep -v grep | awk 'END{print $NF}'", "r");

        if (fp == NULL)
        {
            printf("Failed to run command\n" );
            exit -1;
        }
        else if(fgets(file_type, sizeof(file_type), fp) != NULL)
        {
        sleep(2);
            printf("%s", file_type);

            if(file_type[0] == '\n')
            {
        sleep(2);
                printf("No JPG Open");
            }
            else
            {
                file_type[strlen(file_type)-5]='\0';

                char file_name[400];
                strcpy(file_name, file_type);
                strcat(file_name, "_copy.jpg");

                if(access(file_name, F_OK) == -1)
                {
                    char buf[500];
                    snprintf(buf, sizeof(buf), "convert %s.jpg -colorspace Gray -gamma 2.2 %s", file_type, file_name);
                    system(buf);
                }
            }
        }

    }
    fclose(fp);
    exit(EXIT_SUCCESS);

}


file gambar yang di convert berupa jpg pada kodingan saya kali ini. dan jangan lupa kodingan ini di simpan dengan format .C. setelah selesai mengoding dengan format save (.c) . run atau jalankan dengan menuliskan "gcc [nama kodingan yang kalian simpan.c] -o [nama program anda]" contoh :
"gcc aditya.c -o gunawan" dan setelah itu ketik "./gunawan" untuk menjalankan programnya.

Setelah itu klik gambar yang ingin kalian rubah warna gambarnya, akan muncul gambar seperti dibawah ini :

akan ada copyan dari file asli dengan warna hitam putih.
Untuk mematikan program ini hanya dengan menuliskan pada terminal linux "pkill [nama program anda]" , seperti "pkill gunawan".


okee selamat mencobaa kawan-kawan.