1: <?php
2: dl('php_gtk.so');
3:
4: if ($argc < 2)
5: die("\nUsage: php gdk_pixbuf.php <imagefile>\n\n");
6:
7: $image_file = $argv[1];
8:
9: $window = &new GtkWindow();
10: $window->set_border_width(5);
11: $window->set_title('GdkPixbuf example');
12: $window->set_policy(false, false, true);
13: $window->connect_object('destroy', array('gtk', 'main_quit'));
14:
15: $pixbuf = GdkPixbuf::new_from_file($image_file);
16: if (!$pixbuf) {
17: die("\nCouldn't load $image_file\n\n");
18: }
19:
20: $area = &new GtkDrawingArea();
21: $area->size($pixbuf->get_width(), $pixbuf->get_height());
22: $area->connect('expose_event', 'expose_event', $pixbuf);
23: $frame = &new GtkFrame();
24: $frame->add($area);
25: $frame->set_shadow_type(GTK_SHADOW_IN);
26: $window->add($frame);
27:
28: $window->show_all();
29:
30: gtk::main();
31:
32: function expose_event($area, $event, $pixbuf)
33: {
34: $pixbuf->render_to_drawable($area->window,
35: $area->style->fg_gc[GTK_STATE_NORMAL],
36: $event->area->x, $event->area->y,
37: $event->area->x, $event->area->y,
38: $event->area->width, $event->area->height,
39: GDK_RGB_DITHER_NORMAL, 0, 0);
40: }
41: ?>