|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
#ifdef HAVE_CONFIG_H
|
|
Packit Service |
df60bb |
#include "config.h"
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
#include <math.h>
|
|
Packit Service |
df60bb |
#include "gd.h"
|
|
Packit Service |
df60bb |
#define DEGTORAD(x) ( (x) * (2.0 * 3.14159265) / 360.0 )
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
void
|
|
Packit Service |
df60bb |
doerr (FILE * err, const char *msg)
|
|
Packit Service |
df60bb |
{
|
|
Packit Service |
df60bb |
if (err) {
|
|
Packit Service |
df60bb |
fprintf (err, "%s\n", msg);
|
|
Packit Service |
df60bb |
fflush (err);
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
void
|
|
Packit Service |
df60bb |
dowheel (gdImagePtr im, int color, char *fontfile, int fontsize,
|
|
Packit Service |
df60bb |
double angle, int x, int y, int offset, char *string)
|
|
Packit Service |
df60bb |
{
|
|
Packit Service |
df60bb |
int brect[8];
|
|
Packit Service |
df60bb |
FILE *err;
|
|
Packit Service |
df60bb |
double curangrads, curang, x0, y0;
|
|
Packit Service |
df60bb |
char *cp;
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
err = fopen ("err.out", "a");
|
|
Packit Service |
df60bb |
doerr (err, "------------- New fontwheel --------------");
|
|
Packit Service |
df60bb |
doerr (err, fontfile);
|
|
Packit Service |
df60bb |
doerr (err, string);
|
|
Packit Service |
df60bb |
doerr (err, "------------------------------------------");
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
for (curang = 0.0; curang < 360.0; curang += angle) {
|
|
Packit Service |
df60bb |
curangrads = DEGTORAD(curang);
|
|
Packit Service |
df60bb |
x0 = x + cos (curangrads) * offset;
|
|
Packit Service |
df60bb |
y0 = y - sin (curangrads) * offset;
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* The case of newlines is taken care of in the gdImageStringTTF call */
|
|
Packit Service |
df60bb |
#if defined(OLDER_GD)
|
|
Packit Service |
df60bb |
cp = gdImageStringTTF (im, brect, color, fontfile, fontsize,
|
|
Packit Service |
df60bb |
curangrads, x0, y0, string);
|
|
Packit Service |
df60bb |
#else
|
|
Packit Service |
df60bb |
cp = gdImageStringFT (im, brect, color, fontfile, fontsize,
|
|
Packit Service |
df60bb |
curangrads, x0, y0, string);
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
if (cp)
|
|
Packit Service |
df60bb |
doerr (err, cp);
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
gdImagePolygon (im, (gdPointPtr)brect, 4, color);
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
fclose (err);
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
#if 0
|
|
Packit Service |
df60bb |
void
|
|
Packit Service |
df60bb |
dolines (gdImagePtr im, int color, double incr, int x, int y, int offset,
|
|
Packit Service |
df60bb |
int length)
|
|
Packit Service |
df60bb |
{
|
|
Packit Service |
df60bb |
double curang;
|
|
Packit Service |
df60bb |
double angle;
|
|
Packit Service |
df60bb |
double x0, x1, y0, y1;
|
|
Packit Service |
df60bb |
for (curang = 0.0; curang < 360.0; curang += incr) {
|
|
Packit Service |
df60bb |
angle = curang * (2.0 * 3.14159265) / 360.0;
|
|
Packit Service |
df60bb |
x0 = cos (angle) * offset + x;
|
|
Packit Service |
df60bb |
x1 = cos (angle) * (offset + length) + x;
|
|
Packit Service |
df60bb |
y0 = sin (angle) * offset + y;
|
|
Packit Service |
df60bb |
y1 = sin (angle) * (offset + length) + y;
|
|
Packit Service |
df60bb |
gdImageLine (im, x0, y0, x1, y1, color);
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
void
|
|
Packit Service |
df60bb |
dotest (char *font, int size, double incr,
|
|
Packit Service |
df60bb |
int w, int h, char *string, const char *filename)
|
|
Packit Service |
df60bb |
{
|
|
Packit Service |
df60bb |
gdImagePtr im;
|
|
Packit Service |
df60bb |
FILE *out;
|
|
Packit Service |
df60bb |
int bg;
|
|
Packit Service |
df60bb |
int fc;
|
|
Packit Service |
df60bb |
#if 0
|
|
Packit Service |
df60bb |
int lc;
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
int xc = w / 2;
|
|
Packit Service |
df60bb |
int yc = h / 2;
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
im = gdImageCreate (w, h);
|
|
Packit Service |
df60bb |
bg = gdImageColorAllocate (im, 0, 0, 0);
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
gdImageFilledRectangle (im, 1, 1, w - 1, h - 1, bg);
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
fc = gdImageColorAllocate (im, 255, 192, 192);
|
|
Packit Service |
df60bb |
#if 0
|
|
Packit Service |
df60bb |
lc = gdImageColorAllocate (im, 192, 255, 255);
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
out = fopen (filename, "wb");
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
dowheel (im, fc, font, size, incr, xc, yc, 20, string);
|
|
Packit Service |
df60bb |
#if 0
|
|
Packit Service |
df60bb |
dolines (im, lc, incr, xc, yc, 20, 120);
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
#if defined(HAVE_LIBPNG)
|
|
Packit Service |
df60bb |
gdImagePng (im, out);
|
|
Packit Service |
df60bb |
#elif defined(HAVE_LIBJPEG)
|
|
Packit Service |
df60bb |
gdImageJpeg (im, out, -1);
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
fclose (out);
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
int
|
|
Packit Service |
df60bb |
main(void)
|
|
Packit Service |
df60bb |
{
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
#if defined(HAVE_LIBPNG)
|
|
Packit Service |
df60bb |
dotest ("times", 16, 20.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest1.png");
|
|
Packit Service |
df60bb |
dotest ("times", 16, 30.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest2.png");
|
|
Packit Service |
df60bb |
dotest ("arial", 16, 45.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest3.png");
|
|
Packit Service |
df60bb |
dotest ("arial", 16, 90.0, 400, 400, "Hello\nthere!",
|
|
Packit Service |
df60bb |
"fontwheeltest4.png");
|
|
Packit Service |
df60bb |
#elif defined(HAVE_LIBJPEG)
|
|
Packit Service |
df60bb |
dotest ("times", 16, 20.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest1.jpeg");
|
|
Packit Service |
df60bb |
dotest ("times", 16, 30.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest2.jpeg");
|
|
Packit Service |
df60bb |
dotest ("arial", 16, 45.0, 400, 400, "Hello, there!",
|
|
Packit Service |
df60bb |
"fontwheeltest3.jpeg");
|
|
Packit Service |
df60bb |
dotest ("arial", 16, 90.0, 400, 400, "Hello\nthere!",
|
|
Packit Service |
df60bb |
"fontwheeltest4.jpeg");
|
|
Packit Service |
df60bb |
#else
|
|
Packit Service |
df60bb |
fprintf(stderr, "no PNG or JPEG support\n");
|
|
Packit Service |
df60bb |
#endif
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
return 0;
|
|
Packit Service |
df60bb |
}
|