diff options
Diffstat (limited to 'Build/source/libs/gd/gd-2.0.35/gddemo.c')
-rw-r--r-- | Build/source/libs/gd/gd-2.0.35/gddemo.c | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/Build/source/libs/gd/gd-2.0.35/gddemo.c b/Build/source/libs/gd/gd-2.0.35/gddemo.c deleted file mode 100644 index c804ee97593..00000000000 --- a/Build/source/libs/gd/gd-2.0.35/gddemo.c +++ /dev/null @@ -1,198 +0,0 @@ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdio.h> -#include <math.h> -#include <stdlib.h> -#include "gd.h" -#include "gdfontt.h" -#include "gdfonts.h" -#include "gdfontmb.h" -#include "gdfontl.h" -#include "gdfontg.h" - -int -main (void) -{ -#ifdef HAVE_LIBPNG - /* Input and output files */ - FILE *in; - FILE *out; - - /* Input and output images */ - gdImagePtr im_in = 0, im_out = 0; - - /* Brush image */ - gdImagePtr brush; - - /* Color indexes */ - int white; - int blue; - int red; - int green; - - /* Points for polygon */ - gdPoint points[3]; - int i; - - /* gd fonts for font test */ - gdFontPtr fonts[5]; - int y; - - /* Create output image, in true color. */ - im_out = gdImageCreateTrueColor (256 + 384, 384); - /* 2.0.2: first color allocated would automatically be background in a - palette based image. Since this is a truecolor image, with an - automatic background of black, we must fill it explicitly. */ - white = gdImageColorAllocate (im_out, 255, 255, 255); - gdImageFilledRectangle (im_out, 0, 0, gdImageSX (im_out), - gdImageSY (im_out), white); - - /* Set transparent color. */ - gdImageColorTransparent (im_out, white); - - /* Try to load demoin.png and paste part of it into the - output image. */ - in = fopen ("demoin.png", "rb"); - if (!in) - { - fprintf (stderr, "Can't load source image; this demo\n"); - fprintf (stderr, "is much more impressive if demoin.png\n"); - fprintf (stderr, "is available.\n"); - im_in = 0; - } - else - { - int a; - im_in = gdImageCreateFromPng (in); - fclose (in); - /* Now copy, and magnify as we do so */ - gdImageCopyResampled (im_out, im_in, 32, 32, 0, 0, 192, 192, 255, 255); - /* Now display variously rotated space shuttles in a circle of our own */ - for (a = 0; (a < 360); a += 45) - { - int cx = cos (a * .0174532925) * 128; - int cy = -sin (a * .0174532925) * 128; - gdImageCopyRotated (im_out, im_in, - 256 + 192 + cx, 192 + cy, - 0, 0, gdImageSX (im_in), gdImageSY (im_in), a); - } - } - red = gdImageColorAllocate (im_out, 255, 0, 0); - green = gdImageColorAllocate (im_out, 0, 255, 0); - blue = gdImageColorAllocate (im_out, 0, 0, 255); - /* Fat Rectangle */ - gdImageSetThickness (im_out, 4); - gdImageLine (im_out, 16, 16, 240, 16, green); - gdImageLine (im_out, 240, 16, 240, 240, green); - gdImageLine (im_out, 240, 240, 16, 240, green); - gdImageLine (im_out, 16, 240, 16, 16, green); - gdImageSetThickness (im_out, 1); - /* Circle */ - gdImageArc (im_out, 128, 128, 60, 20, 0, 720, blue); - /* Arc */ - gdImageArc (im_out, 128, 128, 40, 40, 90, 270, blue); - /* Flood fill: doesn't do much on a continuously - variable tone jpeg original. */ - gdImageFill (im_out, 8, 8, blue); - /* Polygon */ - points[0].x = 64; - points[0].y = 0; - points[1].x = 0; - points[1].y = 128; - points[2].x = 128; - points[2].y = 128; - gdImageFilledPolygon (im_out, points, 3, green); - /* 2.0.12: Antialiased Polygon */ - gdImageSetAntiAliased (im_out, green); - for (i = 0; (i < 3); i++) - { - points[i].x += 128; - } - gdImageFilledPolygon (im_out, points, 3, gdAntiAliased); - /* Brush. A fairly wild example also involving a line style! */ - if (im_in) - { - int style[8]; - brush = gdImageCreateTrueColor (16, 16); - gdImageCopyResized (brush, im_in, - 0, 0, 0, 0, - gdImageSX (brush), gdImageSY (brush), - gdImageSX (im_in), gdImageSY (im_in)); - gdImageSetBrush (im_out, brush); - /* With a style, so they won't overprint each other. - Normally, they would, yielding a fat-brush effect. */ - style[0] = 0; - style[1] = 0; - style[2] = 0; - style[3] = 0; - style[4] = 0; - style[5] = 0; - style[6] = 0; - style[7] = 1; - gdImageSetStyle (im_out, style, 8); - /* Draw the styled, brushed line */ - gdImageLine (im_out, 0, 255, 255, 0, gdStyledBrushed); - } - /* Text (non-truetype; see gdtestft for a freetype demo) */ - fonts[0] = gdFontGetTiny (); - fonts[1] = gdFontGetSmall (); - fonts[2] = gdFontGetMediumBold (); - fonts[3] = gdFontGetLarge (); - fonts[4] = gdFontGetGiant (); - y = 0; - for (i = 0; (i <= 4); i++) - { - gdImageString (im_out, fonts[i], 32, 32 + y, (unsigned char *) "hi", - red); - y += fonts[i]->h; - } - y = 0; - for (i = 0; (i <= 4); i++) - { - gdImageStringUp (im_out, fonts[i], 64 + y, 64, - (unsigned char *) "hi", red); - y += fonts[i]->h; - } - /* Random antialiased lines; coordinates all over the image, - but the output will respect a small clipping rectangle */ - gdImageSetClip (im_out, 0, gdImageSY (im_out) - 100, - 100, gdImageSY (im_out)); - /* Fixed seed for reproducibility of results */ - srand (100); - for (i = 0; (i < 100); i++) - { - int x1 = rand () % gdImageSX (im_out); - int y1 = rand () % gdImageSY (im_out); - int x2 = rand () % gdImageSX (im_out); - int y2 = rand () % gdImageSY (im_out); - gdImageSetAntiAliased (im_out, white); - gdImageLine (im_out, x1, y1, x2, y2, gdAntiAliased); - } - /* Make output image interlaced (progressive, in the case of JPEG) */ - gdImageInterlace (im_out, 1); - out = fopen ("demoout.png", "wb"); - /* Write PNG */ - gdImagePng (im_out, out); - fclose (out); - out = fopen ("demoout.gif", "wb"); - /* Write GIF (2.0.28) */ - gdImageGif (im_out, out); - fclose (out); - /* 2.0.12: also write a paletteized png comparable to the gif */ - out = fopen ("demooutp.png", "wb"); - gdImageTrueColorToPalette (im_out, 0, 256); - gdImagePng (im_out, out); - fclose (out); - gdImageDestroy (im_out); - if (im_in) - { - gdImageDestroy (im_in); - } -#else - fprintf (stderr, "No PNG library support.\n"); -#endif /* HAVE_LIBPNG */ - return 0; -} |