[PR]100~I:I

<<< 前のページ 一覧へ戻る 次のページ >>>
どんな画像でもかかってきなさい





[ソースファイル ダウンロード] どんな画像でもかかってきなさい

image.c

/* image.c */



/* -gif,jpg などの画像ファイルを widget にしたい- */


/*
 * gdk_imlib を使用して、
 * あらゆる画像フォーマットに対応した画像ビューアです。
 */


#include <gdk_imlib.h>
#include <gtk/gtk.h>

gint
main (gint argc, gchar *argv[])
{
  GtkWidget *window;

  if (argc <= 1)
    {
      g_print ("Usage:\n %s image_file\n", argv[0]);
      exit (1);
    }

  gtk_set_locale();
  gtk_init (&argc, &argv);

  /* gtk の初期化の後に Imlib を初期化してください。*/

  gdk_imlib_init ();




  /*
   *
   * void
   * gtk_widget_push_visual (GdkVisual *visual);
   *
   * void
   * gtk_widget_push_colormap (GdkColormap *cmap);
   *
   * gtk に imlib の visual and colormap を使用するように指定します。*/

  gtk_widget_push_visual (gdk_imlib_get_visual());
  gtk_widget_push_colormap (gdk_imlib_get_colormap());
  

  /* window を開きます。*/

  {
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), argv[1]);
    gtk_signal_connect (GTK_OBJECT (window), "destroy",
                        GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
    gtk_container_set_border_width (GTK_CONTAINER (window), 0);
  }


  /* 画像を表示します。*/

  {
    GdkImlibImage *im;
    GtkWidget *pixmap;


    /* 画像をロードします。*/

    im = gdk_imlib_load_image (argv[1]);

    /*
     * render です...良く分かってません...
     * image の大きさを決定します。
     */

    gdk_imlib_render (im, im->rgb_width, im->rgb_height);

    /* pixmap を含んだ pixmap widget を作成します。*/

    pixmap = gtk_pixmap_new (gdk_imlib_move_image (im),
                             gdk_imlib_move_mask (im));

    /* window に張り付けます。*/

    gtk_container_add (GTK_CONTAINER (window), pixmap);
  }


  /* いつもの呪文です。*/

  gtk_widget_show_all (window);
  gtk_main ();
  return 0;
}



<<< 前のページ 一覧へ戻る 次のページ >>>

[LARSE へ戻る]

Copyright 1998-2000 (C) Shimaki Matsubara All Rights Reserved.
No reproduction or republication without written permission.
許可なく転載を禁じます。
Last update: 2001年02月24日 PM 18:56:45


[PR]tl参:T3Tw賍宛x