This source file includes following definitions.
- main
- testDrawing
1
2 #include <stdio.h>
3 #include "gd.h"
4
5
6
7
8
9 void testDrawing (
10 gdImagePtr im_in,
11 double scale,
12 int blending,
13 int palette,
14 char *filename);
15
16 int
17 main (int argc, char *argv[])
18 {
19
20 FILE *in;
21 FILE *out;
22
23
24 gdImagePtr im_in = 0;
25
26
27 int lightBlue;
28
29 if (argc != 2)
30 {
31 fprintf (stderr, "Usage: testac filename.png\n");
32 exit (1);
33 }
34
35
36
37
38
39
40 in = fopen (argv[1], "rb");
41 if (!in)
42 {
43 fprintf (stderr, "Can't load %s.\n", argv[1]);
44 exit (1);
45 }
46 else
47 {
48 im_in = gdImageCreateFromPng (in);
49 fclose (in);
50 }
51 testDrawing (im_in, 1.0, 0, 0, "noblending-fullsize-truecolor.png");
52 testDrawing (im_in, 1.0, 1, 0, "blending-fullsize-truecolor.png");
53 testDrawing (im_in, 0.5, 0, 0, "noblending-halfsize-truecolor.png");
54 testDrawing (im_in, 0.5, 1, 0, "blending-halfsize-truecolor.png");
55 testDrawing (im_in, 2.0, 0, 0, "noblending-doublesize-truecolor.png");
56 testDrawing (im_in, 2.0, 1, 0, "blending-doublesize-truecolor.png");
57 testDrawing (im_in, 1.0, 0, 1, "noblending-fullsize-palette.png");
58 testDrawing (im_in, 1.0, 1, 1, "blending-fullsize-palette.png");
59 testDrawing (im_in, 0.5, 0, 1, "noblending-halfsize-palette.png");
60 testDrawing (im_in, 0.5, 1, 1, "blending-halfsize-palette.png");
61 testDrawing (im_in, 2.0, 0, 1, "noblending-doublesize-palette.png");
62 testDrawing (im_in, 2.0, 1, 1, "blending-doublesize-palette.png");
63 gdImageDestroy (im_in);
64 return 0;
65 }
66
67
68
69
70 void
71 testDrawing (
72 gdImagePtr im_in,
73 double scale,
74 int blending,
75 int palette,
76 char *filename)
77 {
78 gdImagePtr im_out;
79 FILE *out;
80
81 im_out = gdImageCreateTrueColor ((int) (gdImageSX (im_in) * scale),
82 (int) (gdImageSY (im_in) * scale));
83
84
85
86
87
88
89
90
91
92 gdImageAlphaBlending (im_out, blending);
93
94
95 gdImageFill (im_out, (int) (gdImageSX (im_in) * scale / 2),
96 (int) (gdImageSY (im_in) * scale / 2),
97 gdTrueColor (192, 192, 255));
98
99
100
101
102
103
104 gdImageCopyResampled (im_out, im_in,
105 0, 0,
106 0, 0,
107 (int) (gdImageSX (im_in) * scale), (int) (gdImageSY (im_in) * scale),
108 gdImageSX (im_in), gdImageSY (im_in));
109
110 out = fopen (filename, "wb");
111
112
113
114
115
116 gdImageSaveAlpha (im_out, !blending);
117
118
119 if (palette)
120 {
121
122 gdImageTrueColorToPalette (im_out, 1, 256);
123 }
124
125 gdImagePng (im_out, out);
126 fclose (out);
127
128 gdImageDestroy (im_out);
129 }