+
+ if (transparent)
+ {
+ MFace *face = mframe_get_prop (frame, Mface);
+ MSymbol fg = mface_get_prop (face, Mforeground);
+ int rgb_value = 0;
+
+ if (fg)
+ rgb_value = (int) msymbol_get (fg, msymbol (" rgb"));
+ if (rgb_value == 0xFFFFFF)
+ bg_rgb = gdImageColorAllocate (image, 0, 0, 0);
+ else
+ bg_rgb = gdImageColorAllocate (image, 255, 255, 255);
+ gdImageColorTransparent (image, bg_rgb);
+#if HAVE_GD > 1
+ gdImageAlphaBlending (image, 0);
+#endif
+ }
+ else
+ {
+ MFace *face = mframe_get_prop (frame, Mface);
+ MSymbol bg = mface_get_prop (face, Mbackground);
+ if (bg)
+ {
+ int rgb_value = (int) msymbol_get (bg, msymbol (" rgb"));
+ bg_rgb = gdImageColorAllocate (image, rgb_value >> 16,
+ (rgb_value >> 8) & 255,
+ rgb_value & 255);
+ }
+ else
+ bg_rgb = gdImageColorAllocate (image, 255, 255, 255);
+ }
+