+ GdkPixbuf *pb;
+ GError *err = NULL;
+
+ pb = gdk_pixbuf_new_from_file(filename, &err);
+ if (pb == NULL)
+ {
+ g_warning("Failed to open icon file %s: %s", filename, err->message);
+ break;
+ }
+ gval = ghb_dict_value_new();
+ int colorspace = gdk_pixbuf_get_colorspace(pb);
+ gboolean alpha = gdk_pixbuf_get_has_alpha(pb);
+ int width = gdk_pixbuf_get_width(pb);
+ int height = gdk_pixbuf_get_height(pb);
+ int bps = gdk_pixbuf_get_bits_per_sample(pb);
+ int rowstride = gdk_pixbuf_get_rowstride(pb);
+
+ ghb_dict_insert(gval, g_strdup("colorspace"),
+ ghb_int_value_new(colorspace));
+ ghb_dict_insert(gval, g_strdup("alpha"),
+ ghb_boolean_value_new(alpha));
+ ghb_dict_insert(gval, g_strdup("width"),
+ ghb_int_value_new(width));
+ ghb_dict_insert(gval, g_strdup("height"),
+ ghb_int_value_new(height));
+ ghb_dict_insert(gval, g_strdup("bps"),
+ ghb_int_value_new(bps));
+ ghb_dict_insert(gval, g_strdup("rowstride"),
+ ghb_int_value_new(rowstride));