Kamis, 19 Februari 2015

GTK Programming : GtkImage untuk Penayangan Gambar


Gambar merupakan komponen esensial untuk sebuah program. Tanpa gambar program yang kita buat terasa kurang menarik dan kurang interaktif. Dalam GTK, widget GtkImage adalah widget yang dibuat khusus untuk menampilkan gambar. Beruntung sekali, widget ini mendukung banyak format gambar, jadi kita tidak perlu repot-repot memikirkan lagi untuk membuat gambar yang formatnya sesuai. Karena GTK sudah mendukung hampir semua jenis format gambar bitmap.

Gambar yang bisa diload oleh GTK bisa berasal dari beberapa macam sumber, bisa dari file, icon theme, stock, resource, dll. Dalam tutorial ini hanya akan dibahas cara penampilan icon dari file dan icon theme, karena kedua sumber gambar tersebut mungkin akan lebih sering digunakan.

Gambar dari file tidak perlu saya jelaskan, yang jelas untuk menampilkannya kita harus tahu path file gambar yang akan ditampilkan. Misalnya, “/home/irvan/jannina.png”.
Sementara itu, berbagai jenis icon theme yang dapat kita temukan pada folder /usr/share/icons/. Icon yang digunakan dipilih berdasarkan tema icon saat ini. Untuk memilih jenis icon dari theme yang akan ditampilkan, kita cukup mengetahui nama file icon tanpa harus mengetahui path nya.

Let’s Start
Membuat widget GtkImage dapat dilakukan dengan fungsi gtk_image_new(). Fungsi ini hanya membuat sebuah widget tanpa menyertakan gambar. Untuk menempatkan gambar pada widget, selanjutnya kita harus menggunakan fungsi  gtk_image_set_from_file() atau  gtk_image_set_from_icon_name(). Baca sampai akhir untuk mengetahui penjelasan kedua fungsi ini.

Kita juga bisa meload gambar bersamaan dengan pembuatan widget. Membuat GtkImage dengan gambar dari file sangat mudah. Fungsi yang kita gunakan hanya memerlukan sebuah parameter berupa path file gambar yang akan ditampilkan.


GtkWidget *gtk_image_new_from_file(const gchar *filename);

Sementara itu, membuat gambar dari icon theme tidak jauh berbeda. Untuk meload gambar dari icon theme, selain menyertakan parameter nama icon, kita juga menyertakan ukuran icon pada parameter kedua.


GtkWidget *gtk_image_new_from_icon_name(const gchar *icon_name, GtkIconSize size);

Berikut ini adalah macam-macam ukuran icon yang merupakan kelompok enumerasi dari GtkIconSize:
  • GTK_ICON_SIZE_INVALID
  • GTK_ICON_SIZE_MENU
  • GTK_ICON_SIZE_SMALL_TOOLBAR
  • GTK_ICON_SIZE_LARGE_TOOLBAR
  • GTK_ICON_SIZE_BUTTON
  • GTK_ICON_SIZE_DND
  • GTK_ICON_SIZE_DIALOG

Source Code
#include<gtk/gtk.h>
int main(int argc, char *argv[])
{
    GtkWidget *window, *box, *image1, *image2;
    gtk_init(&argc, &argv);
    //window baru
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window),"Hello world");
    //buat gtkbox horisontal lalu pasang ke window 
    box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10); 
    gtk_container_add(GTK_CONTAINER(window), box);
    //buat gambar dari file dan icon theme
    image1 = gtk_image_new_from_file("/home/irvan/jannina.png");
    image2 = gtk_image_new_from_icon_name("gtk-open", GTK_ICON_SIZE_DIALOG);
    //pasang image1 dan image2 ke box
    gtk_box_pack_start(GTK_BOX(box),image1,TRUE,TRUE,10); 
    gtk_box_pack_start(GTK_BOX(box),image2,TRUE,TRUE,10);
    //tampilkan widget
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}


Mengatur Gambar
Sebelumnya telah disinggung tentang fungsi gtk_image_set_from_file() dan gtk_image_set_from_icon_name(). Kedua fungsi ini dapat kita gunakan untuk meload gambar pada GtkImage yang belum berisi gambar, atau juga bisa untuk mengubah gambar yang sudah ada sebelumnya.


void gtk_image_set_from_file (GtkImage *image, const gchar *filename);


void gtk_image_set_from_icon_name (GtkImage *image, const gchar *icon_name, GtkIconSize size);

Parameter image adalah widget yang ingin di atur. Penjelasan parameter lainnya sama seperti fungsi sebelumnya.
Kedua fungsi ini tidak disertakan dalam source code, silahkan mencobanya sendiri yaa. :D


Hasil


Load disqus comments

0 comments