X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fwebcollage-helper.c;h=7c88a932b8e9b34dabb31cd1b33915a9794269e4;hb=c28aecf9fc41e3a03494bacf7279745425e2fa18;hp=99bd78292b5637315165057467270e6c06af0ea3;hpb=cccbddbc4140cf9a06d7d95cc5c0ca36eb5d6e28;p=xscreensaver diff --git a/hacks/webcollage-helper.c b/hacks/webcollage-helper.c index 99bd7829..7c88a932 100644 --- a/hacks/webcollage-helper.c +++ b/hacks/webcollage-helper.c @@ -33,6 +33,31 @@ static int verbose_p = 0; static void add_jpeg_comment (struct jpeg_compress_struct *cinfo); static void write_pixbuf (GdkPixbuf *pb, const char *file); +static GdkPixbuf * +load_pixbuf (const char *file) +{ + GdkPixbuf *pb; +#ifdef HAVE_GTK2 + GError *err = NULL; + + pb = gdk_pixbuf_new_from_file (file, &err); +#else /* !HAVE_GTK2 */ + pb = gdk_pixbuf_new_from_file (file); +#endif /* HAVE_GTK2 */ + + if (!pb) + { +#ifdef HAVE_GTK2 + fprintf (stderr, "%s: %s\n", progname, err->message); + g_error_free (err); +#else /* !HAVE_GTK2 */ + fprintf (stderr, "%s: unable to load %s\n", progname, file); +#endif /* !HAVE_GTK2 */ + exit (1); + } + + return pb; +} static void paste (const char *paste_file, @@ -48,20 +73,8 @@ paste (const char *paste_file, int paste_w, paste_h; int base_w, base_h; - paste_pb = gdk_pixbuf_new_from_file (paste_file); - - if (!paste_pb) - { - fprintf (stderr, "%s: unable to load %s\n", progname, paste_file); - exit (1); - } - - base_pb = gdk_pixbuf_new_from_file (base_file); - if (!base_pb) - { - fprintf (stderr, "%s: unable to load %s\n", progname, base_file); - exit (1); - } + paste_pb = load_pixbuf (paste_file); + base_pb = load_pixbuf (base_file); paste_w = gdk_pixbuf_get_width (paste_pb); paste_h = gdk_pixbuf_get_height (paste_pb); @@ -210,7 +223,7 @@ write_pixbuf (GdkPixbuf *pb, const char *file) if (channels != 3) { - fprintf (stderr, "%s: %d channels?\n", progname); + fprintf (stderr, "%s: %d channels?\n", progname, channels); exit (1); } @@ -266,7 +279,7 @@ write_pixbuf (GdkPixbuf *pb, const char *file) perror (buf); exit (1); } - fprintf (stderr, " %dK\n", (st.st_size + 1023) / 1024); + fprintf (stderr, " %ldK\n", (st.st_size + 1023) / 1024); } fclose (out); @@ -350,6 +363,10 @@ main (int argc, char **argv) if (w < 0) usage(); if (h < 0) usage(); +#ifdef HAVE_GTK2 + g_type_init (); +#endif /* HAVE_GTK2 */ + paste (paste_file, base_file, from_scale, opacity, from_x, from_y, to_x, to_y,