Annotation of embedaddon/php/ext/gd/libgd/gdtestft.c, revision 1.1
1.1 ! misho 1:
! 2: #include "gd.h"
! 3: #include <string.h>
! 4:
! 5: #define PI 3.141592
! 6: #define DEG2RAD(x) ((x)*PI/180.)
! 7:
! 8: #define MAX(x,y) ((x) > (y) ? (x) : (y))
! 9: #define MIN(x,y) ((x) < (y) ? (x) : (y))
! 10:
! 11: #define MAX4(x,y,z,w) \
! 12: ((MAX((x),(y))) > (MAX((z),(w))) ? (MAX((x),(y))) : (MAX((z),(w))))
! 13: #define MIN4(x,y,z,w) \
! 14: ((MIN((x),(y))) < (MIN((z),(w))) ? (MIN((x),(y))) : (MIN((z),(w))))
! 15:
! 16: #define MAXX(x) MAX4(x[0],x[2],x[4],x[6])
! 17: #define MINX(x) MIN4(x[0],x[2],x[4],x[6])
! 18: #define MAXY(x) MAX4(x[1],x[3],x[5],x[7])
! 19: #define MINY(x) MIN4(x[1],x[3],x[5],x[7])
! 20:
! 21: int
! 22: main (int argc, char *argv[])
! 23: {
! 24: #ifndef HAVE_LIBFREETYPE
! 25: fprintf (stderr, "gd was not compiled with HAVE_LIBFREETYPE defined.\n");
! 26: fprintf (stderr, "Install the FreeType library, including the\n");
! 27: fprintf (stderr, "header files. Then edit the gd Makefile, type\n");
! 28: fprintf (stderr, "make clean, and type make again.\n");
! 29: return 1;
! 30: #else
! 31: gdImagePtr im;
! 32: int black;
! 33: int white;
! 34: int brect[8];
! 35: int x, y;
! 36: char *err;
! 37: FILE *out;
! 38: #ifdef JISX0208
! 39: char *s = "Hello. こんにちは Qyjpqg,"; /* String to draw. */
! 40: #else
! 41: char *s = "Hello. Qyjpqg,"; /* String to draw. */
! 42: #endif
! 43:
! 44: double sz = 40.;
! 45:
! 46: #if 0
! 47: double angle = 0.;
! 48: #else
! 49: double angle = DEG2RAD (-90);
! 50: #endif
! 51:
! 52: #ifdef JISX0208
! 53: char *f = "/usr/openwin/lib/locale/ja/X11/fonts/TT/HG-MinchoL.ttf"; /* UNICODE */
! 54: /* char *f = "/usr/local/lib/fonts/truetype/DynaFont/dfpop1.ttf"; *//* SJIS */
! 55: #else
! 56: char *f = "times"; /* TrueType font */
! 57: #endif
! 58:
! 59: /* obtain brect so that we can size the image */
! 60: err = gdImageStringFT ((gdImagePtr) NULL, &brect[0], 0, f, sz, angle, 0, 0, s);
! 61: if (err)
! 62: {
! 63: fprintf (stderr, "%s", err);
! 64: return 1;
! 65: }
! 66:
! 67: /* create an image just big enough for the string */
! 68: x = MAXX (brect) - MINX (brect) + 6;
! 69: y = MAXY (brect) - MINY (brect) + 6;
! 70: #if 0
! 71: im = gdImageCreate (500, 500);
! 72: #else
! 73: /* gd 2.0: true color images can use freetype too */
! 74: im = gdImageCreateTrueColor (x, y);
! 75: #endif
! 76:
! 77: /* Background color. gd 2.0: fill the image with it; truecolor
! 78: images have a black background otherwise. */
! 79: white = gdImageColorResolve (im, 255, 255, 255);
! 80: gdImageFilledRectangle (im, 0, 0, x, y, white);
! 81: black = gdImageColorResolve (im, 0, 0, 0);
! 82:
! 83: /* render the string, offset origin to center string */
! 84: x = 0 - MINX (brect) + 3;
! 85: y = 0 - MINY (brect) + 3;
! 86:
! 87: err = gdImageStringFT (im, NULL, black, f, sz, angle, x, y, s);
! 88: if (err)
! 89: {
! 90: fprintf (stderr, "%s", err);
! 91: return 1;
! 92: }
! 93: /* TBB: Write img to test/fttest.png */
! 94: out = fopen ("test/fttest.png", "wb");
! 95: if (!out)
! 96: {
! 97: fprintf (stderr, "Can't create test/fttest.png\n");
! 98: exit (1);
! 99: }
! 100: gdImagePng (im, out);
! 101: fclose (out);
! 102: fprintf (stderr, "Test image written to test/fttest.png\n");
! 103: /* Destroy it */
! 104: gdImageDestroy (im);
! 105:
! 106: return 0;
! 107: #endif /* HAVE_FREETYPE */
! 108: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>