博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

LinuxSmartphone

好记性不如烂笔头,进步在于积累!
   LinuxSmartphone.cublog.cn
关于作者  


我的分类  




一例子
#include <glib.h>
#include <gtk/gtk.h>
#include <libgnomevfs/gnome-vfs.h>
 
#define BUF_SIZE 8192
 
GtkWidget *
load_image (const gchar *uri)
{
       GnomeVFSHandle   *handle;
       GnomeVFSResult    result;
       GdkPixbufLoader  *loader;
       GdkPixbuf        *pixbuf;
       gchar             buffer[BUF_SIZE];
       GnomeVFSFileSize  bytes_read;
 
       result = gnome_vfs_open (&handle, uri, GNOME_VFS_OPEN_READ);
 
       loader = gdk_pixbuf_loader_new ();
 
       while (result == GNOME_VFS_OK) {
               result = gnome_vfs_read (handle, buffer,
                                        BUF_SIZE, &bytes_read);
 
               gdk_pixbuf_loader_write (loader, buffer, bytes_read, NULL);
       }
 
       gdk_pixbuf_loader_close (loader, NULL);
 
       pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
 
       if (!pixbuf) {
               return NULL;
       }
 
       return gtk_image_new_from_pixbuf (pixbuf);
}
 
int
main (int argc, char **argv)
{
       GtkWidget *window;
       GtkWidget *image;
 
       if (argc < 2) {
               g_print ("Run with %s ,<2\n", argv[0]);
               exit (1);
       }
 
       gtk_init (&argc, &argv);
       gnome_vfs_init ();
 
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       g_signal_connect (window, "destroy",
                         gtk_main_quit, NULL);
 
       image = load_image (argv[1]);
 
       if (!image) {
               g_print ("Not a valid uri: %s\n", argv[1]);
               return (1);
       }
 
       gtk_container_add (GTK_CONTAINER (window), image);
 
       gtk_widget_show_all (window);
 
       gtk_main ();
 
       return 0;
}

make.sh如下:
#!/bin/bash
gcc `pkg-config --libs --cflags gtk+-2.0 gnome-vfs-2.0` \
      vfs-example.c -o vfs-example

 发表于: 2008-06-24,修改于: 2008-06-24 15:53 已浏览108次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:4.15415

京ICP证041476号