php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
gdtestft.c
Go to the documentation of this file.
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
21int
22main (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_LIBFREETYPE */
108}
fprintf($stream, string $format, mixed ... $values)
fclose($stream)
fopen(string $filename, string $mode, bool $use_include_path=false, $context=null)
char s[4]
Definition cdf.c:77
char * err
Definition ffi.c:3029
void gdImagePng(gdImagePtr im, FILE *out)
char * gdImageStringFT(gdImage *im, int *brect, int fg, char *fontlist, double ptsize, double angle, int x, int y, char *string)
Definition gdft.c:56
gdImage * gdImagePtr
Definition gd.h:248
#define NULL
Definition gdcache.h:45
int main(void)
Definition gddemo.c:7
#define MAXY(x)
Definition gdtestft.c:18
#define DEG2RAD(x)
Definition gdtestft.c:6
#define MAXX(x)
Definition gdtestft.c:16
#define MINX(x)
Definition gdtestft.c:17
#define MINY(x)
Definition gdtestft.c:19
gdImagePtr gdImageCreate(int sx, int sy)
Definition gd.c:141
void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color)
Definition gd.c:2307
void gdImageDestroy(gdImagePtr im)
Definition gd.c:247
int gdImageColorResolve(gdImagePtr im, int r, int g, int b)
Definition gd.c:534
gdImagePtr gdImageCreateTrueColor(int sx, int sy)
Definition gd.c:195
exit(string|int $status=0)
out($f, $s)