diff options
author | ijliao <ijliao@FreeBSD.org> | 2003-03-25 10:22:37 +0800 |
---|---|---|
committer | ijliao <ijliao@FreeBSD.org> | 2003-03-25 10:22:37 +0800 |
commit | 3a1f41bdd012c5623696f322ba35e235d198328d (patch) | |
tree | 2684f51a3804920b67d4c67f0972c91d75e25caf | |
parent | 9f9427deafc33575ff0838b61d830904dd5108e8 (diff) | |
download | freebsd-ports-gnome-3a1f41bdd012c5623696f322ba35e235d198328d.tar.gz freebsd-ports-gnome-3a1f41bdd012c5623696f322ba35e235d198328d.tar.zst freebsd-ports-gnome-3a1f41bdd012c5623696f322ba35e235d198328d.zip |
upgrade to 2.0.11
Submitted by: Mikhail Teterin <mi+mx@aldan.algebra.com>
-rw-r--r-- | graphics/gd2/Makefile | 9 | ||||
-rw-r--r-- | graphics/gd2/distinfo | 2 | ||||
-rw-r--r-- | graphics/gd2/files/Makefile.bsd | 17 | ||||
-rw-r--r-- | graphics/gd2/files/gd_biggif_out.c | 4 | ||||
-rw-r--r-- | graphics/gd2/files/gd_gif_in.c | 4 | ||||
-rw-r--r-- | graphics/gd2/files/gd_gif_out.c | 2 | ||||
-rw-r--r-- | graphics/gd2/files/gd_lzw_out.c | 4 | ||||
-rw-r--r-- | graphics/gd2/files/patch-Makefile | 47 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gd.c | 66 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gd.h | 86 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gd_png.c | 11 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gdcache.h | 11 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gdft.c | 192 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gdtest.c | 4 | ||||
-rw-r--r-- | graphics/gd2/files/patch-gdtestft.c | 99 | ||||
-rw-r--r-- | graphics/gd2/files/patch-index.html | 329 | ||||
-rw-r--r-- | graphics/gd2/files/patch-webpng.c | 66 | ||||
-rw-r--r-- | graphics/gd2/pkg-plist | 1 |
18 files changed, 159 insertions, 795 deletions
diff --git a/graphics/gd2/Makefile b/graphics/gd2/Makefile index 97ea93577513..1eade0f4c520 100644 --- a/graphics/gd2/Makefile +++ b/graphics/gd2/Makefile @@ -6,8 +6,7 @@ # PORTNAME= gd -PORTVERSION= 2.0.1 -PORTREVISION= 3 +PORTVERSION= 2.0.11 CATEGORIES+= graphics MASTER_SITES= http://www.boutell.com/gd/http/ \ ftp://ftp.boutell.com/pub/boutell/gd/ \ @@ -41,8 +40,12 @@ MAKE_ARGS+= -j2 MAKE_ARGS+= $v="${$v}" .endfor -pre-fetch: +.if defined(HAVE_UNISYS_LICENSE) +WITH_LZW= yes +.endif + .if !defined(WITH_LZW) +pre-fetch: @${ECHO_CMD} "************************************************************" @${ECHO_CMD} "* If you live outside US and Canada, you can define *" @${ECHO_CMD} "* WITH_LZW to enable GIF compression support. *" diff --git a/graphics/gd2/distinfo b/graphics/gd2/distinfo index 8bc97eb452ab..74122c5448ea 100644 --- a/graphics/gd2/distinfo +++ b/graphics/gd2/distinfo @@ -1 +1 @@ -MD5 (gd-2.0.1.tar.gz) = 43af994a97f3300a1165ca4888176ece +MD5 (gd-2.0.11.tar.gz) = e2b6a14e7ac9781789e5d9f189af8475 diff --git a/graphics/gd2/files/Makefile.bsd b/graphics/gd2/files/Makefile.bsd index e70ac180e29b..7620499d69cf 100644 --- a/graphics/gd2/files/Makefile.bsd +++ b/graphics/gd2/files/Makefile.bsd @@ -1,8 +1,15 @@ -PROGS!= make -V BIN_PROGRAMS -f ${WRKSRC}/Makefile -TESTS!= make -V TEST_PROGRAMS -f ${WRKSRC}/Makefile -OBJS!= make -V LIBOBJS -f ${WRKSRC}/Makefile +PROGS!= make -V BIN_PROGRAMS -f ${WRKSRC}/makefile.sample +PROGS+= gd2togif gdcmpgif giftogd2 +PROGS+= annotate # new utility, not included in makefile.sample +TESTS= gdtest gddemo gd2time gdtestft testac fontsizetest fontwheeltest +SRCS= gd.c gd_gd.c gd_gd2.c gd_io.c gd_io_dp.c gd_io_file.c \ + gd_io_ss.c gd_jpeg.c gd_png.c gd_ss.c gd_topal.c \ + gd_wbmp.c gdcache.c gdfontg.c gdfontl.c gdfontmb.c \ + gdfonts.c gdfontt.c gdft.c gdhelpers.c gdhelpers.h \ + gdkanji.c gdtables.c gdxpm.c jisx0208.h mathmake.c \ + wbmp.c wbmp.h +SRCS+= gd_gif_in.c gd_gif_out.c gd_biggif_out.c gd_lzw_out.c MAKEDIR=/usr/share/mk -SRCS= ${OBJS:.o=.c} LIB=gd SHLIB_MAJOR=4 SHLIB_MINOR=0 @@ -13,7 +20,7 @@ SHLIB_NAME!= make -V SHLIB_NAME LIB=${LIB} \ CFLAGS+=-I${.CURDIR} -I${LOCALBASE}/include/freetype2/ \ -I${LOCALBASE}/include/freetype2/freetype -I${LOCALBASE}/include \ - -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE + -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DHAVE_LIBZ LDADD= -L${LOCALBASE}/lib -lpng -lz -ljpeg -lfreetype -lm .ifndef WITHOUT_XPM diff --git a/graphics/gd2/files/gd_biggif_out.c b/graphics/gd2/files/gd_biggif_out.c index 3f4ac1fa4cca..29ec90f87d56 100644 --- a/graphics/gd2/files/gd_biggif_out.c +++ b/graphics/gd2/files/gd_biggif_out.c @@ -12,7 +12,7 @@ void gdImageBigGif(gdImagePtr im, FILE *outFile) { gdIOCtx *out = gdNewFileCtx(outFile); gdImageBigGifCtx(im, out); - out->free(out); + out->gd_free(out); } void* gdImageBigGifPtr(gdImagePtr im, int *size) @@ -21,7 +21,7 @@ void* gdImageBigGifPtr(gdImagePtr im, int *size) gdIOCtx *out = gdNewDynamicCtx(2048, NULL); gdImageBigGifCtx(im, out); rv = gdDPExtractData(out,size); - out->free(out); + out->gd_free(out); return rv; } diff --git a/graphics/gd2/files/gd_gif_in.c b/graphics/gd2/files/gd_gif_in.c index e600b804703f..fc1b587cc8b4 100644 --- a/graphics/gd2/files/gd_gif_in.c +++ b/graphics/gd2/files/gd_gif_in.c @@ -83,7 +83,7 @@ gdImagePtr gdImageCreateFromGifSource(gdSourcePtr inSource) im = gdImageCreateFromGifCtx(in); - in->free(in); + in->gd_free(in); return im; } @@ -96,7 +96,7 @@ gdImageCreateFromGif(FILE *fdFile) im = gdImageCreateFromGifCtx(fd); - fd->free(fd); + fd->gd_free(fd); return im; } diff --git a/graphics/gd2/files/gd_gif_out.c b/graphics/gd2/files/gd_gif_out.c index 7ab2f21f8ca2..10c7ab58000b 100644 --- a/graphics/gd2/files/gd_gif_out.c +++ b/graphics/gd2/files/gd_gif_out.c @@ -14,7 +14,7 @@ void gdImageGifToSink(gdImagePtr im, gdSinkPtr outSink) { gdIOCtx *out = gdNewSSCtx(NULL,outSink); gdImageGifCtx(im, out); - out->free(out); + out->gd_free(out); } void gdImageGifCtx(gdImagePtr im, gdIOCtx *out) diff --git a/graphics/gd2/files/gd_lzw_out.c b/graphics/gd2/files/gd_lzw_out.c index 8c58bdfd24e3..ee130c5e5a38 100644 --- a/graphics/gd2/files/gd_lzw_out.c +++ b/graphics/gd2/files/gd_lzw_out.c @@ -72,7 +72,7 @@ void gdImageLzw(gdImagePtr im, FILE *outFile) { gdIOCtx *out = gdNewFileCtx(outFile); gdImageLzwCtx(im, out); - out->free(out); + out->gd_free(out); } void* gdImageLzwPtr(gdImagePtr im, int *size) @@ -81,7 +81,7 @@ void* gdImageLzwPtr(gdImagePtr im, int *size) gdIOCtx *out = gdNewDynamicCtx(2048, NULL); gdImageLzwCtx(im, out); rv = gdDPExtractData(out,size); - out->free(out); + out->gd_free(out); return rv; } diff --git a/graphics/gd2/files/patch-Makefile b/graphics/gd2/files/patch-Makefile deleted file mode 100644 index 487b38c3ed06..000000000000 --- a/graphics/gd2/files/patch-Makefile +++ /dev/null @@ -1,47 +0,0 @@ ---- Makefile.orig Thu Apr 25 14:14:43 2002 -+++ Makefile Thu Apr 25 14:10:10 2002 -@@ -67,7 +67,7 @@ - - PROGRAMS=$(BIN_PROGRAMS) $(TEST_PROGRAMS) - --BIN_PROGRAMS=pngtogd pngtogd2 gdtopng gd2topng gd2copypal gdparttopng webpng -+BIN_PROGRAMS=pngtogd pngtogd2 gdtopng gd2topng gd2copypal gdparttopng webpng gd2togif gdcmpgif giftogd2 - TEST_PROGRAMS=gdtest gddemo gd2time gdtestft testac - - default: instructions -@@ -94,6 +94,9 @@ - sh ./install-item 755 gd2topng $(INSTALL_BIN)/gd2topng - sh ./install-item 755 gd2copypal $(INSTALL_BIN)/gd2copypal - sh ./install-item 755 gdparttopng $(INSTALL_BIN)/gdparttopng -+ sh ./install-item 755 gd2togif $(INSTALL_BIN)/gd2togif -+ sh ./install-item 755 gdcmpgif $(INSTALL_BIN)/gdcmpgif -+ sh ./install-item 755 giftogd2 $(INSTALL_BIN)/giftogd2 - sh ./install-item 755 webpng $(INSTALL_BIN)/webpng - sh ./install-item 755 bdftogd $(INSTALL_BIN)/bdftogd - sh ./install-item 644 gd.h $(INSTALL_INCLUDE)/gd.h -@@ -141,8 +144,18 @@ - gdtestft: gdtestft.o - $(CC) --verbose gdtestft.o -o gdtestft $(LIBDIRS) $(LIBS) - -+gd2togif: gd2togif.o libgd.a -+ $(CC) --verbose gd2togif.o -o gd2togif $(LIBDIRS) $(LIBS) -+ -+gdcmpgif: gdcmpgif.o libgd.a -+ $(CC) --verbose gdcmpgif.o -o gdcmpgif $(LIBDIRS) $(LIBS) -+ -+giftogd2: giftogd2.o libgd.a -+ $(CC) --verbose giftogd2.o -o giftogd2 $(LIBDIRS) $(LIBS) -+ - LIBOBJS=gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o \ - gd_io_file.o gd_ss.o gd_io_ss.o gd_png.o gd_jpeg.o gdxpm.o \ -+ gd_gif_in.o gd_gif_out.o gd_biggif_out.o gd_lzw_out.o \ - gdfontt.o gdfonts.o gdfontmb.o gdfontl.o gdfontg.o \ - gdtables.o gdft.o gdcache.o gdkanji.o wbmp.o \ - gd_wbmp.o gdhelpers.o gd_topal.o -@@ -171,5 +184,4 @@ - -ranlib libgd.a - - clean: -- rm -f *.o *.a *.so ${PROGRAMS} test/gdtest.jpg test/gdtest.wbmp -- -+ rm -f *.o *.a *.so ${PROGRAMS} test/gdtest.jpg test/gdtest.wbmp demoout.png test/fttest.png diff --git a/graphics/gd2/files/patch-gd.c b/graphics/gd2/files/patch-gd.c index ff3512f60e22..2ba623c62281 100644 --- a/graphics/gd2/files/patch-gd.c +++ b/graphics/gd2/files/patch-gd.c @@ -1,69 +1,5 @@ ---- gd.c.orig Thu Apr 25 14:15:15 2002 +--- gd.c Thu Apr 25 14:15:15 2002 +++ gd.c Thu Apr 25 12:43:55 2002 -@@ -1651,18 +1651,37 @@ - if (dst->trueColor) - { - /* 2.0: much easier when the destination is truecolor. */ -+ -+ if (src->trueColor) { - for (y = 0; (y < h); y++) - { - for (x = 0; (x < w); x++) - { - int c = gdImageGetTrueColorPixel (src, srcX + x, - srcY + y); -+ gdImageSetPixel (dst, -+ dstX + x, -+ dstY + y, -+ c); -+ } -+ } -+ -+ } -+ else { -+ /* source is palette based */ -+ for (y = 0; (y < h); y++) -+ { -+ for (x = 0; (x < w); x++) -+ { -+ int c = gdImageGetPixel (src, srcX + x, -+ srcY + y); - if (c != src->transparent) - { - gdImageSetPixel (dst, - dstX + x, - dstY + y, -- c); -+ gdTrueColor(src->red[c], src->green[c], src->blue[c])); -+ } - } - } - } -@@ -1795,18 +1814,18 @@ - else - { - dc = gdImageGetPixel (dst, tox, toy); -- g = 0.29900 * dst->red[dc] -- + 0.58700 * dst->green[dc] -- + 0.11400 * dst->blue[dc]; -+ g = 0.29900 * gdImageRed(dst,dc) -+ + 0.58700 * gdImageGreen(dst,dc) -+ + 0.11400 * gdImageBlue(dst, dc); - - ncR = gdImageRed (src, c) * (pct / 100.0) -- + gdImageRed (dst, dc) * g * -+ + g * - ((100 - pct) / 100.0); - ncG = gdImageGreen (src, c) * (pct / 100.0) -- + gdImageGreen (dst, dc) * g * -+ + g * - ((100 - pct) / 100.0); - ncB = gdImageBlue (src, c) * (pct / 100.0) -- + gdImageBlue (dst, dc) * g * -+ + g * - ((100 - pct) / 100.0); - - /* First look for an exact match */ @@ -2211,7 +2230,17 @@ } diff --git a/graphics/gd2/files/patch-gd.h b/graphics/gd2/files/patch-gd.h index d44b8c99f707..026f87b14b30 100644 --- a/graphics/gd2/files/patch-gd.h +++ b/graphics/gd2/files/patch-gd.h @@ -1,67 +1,41 @@ ---- gd.h.orig Thu Apr 25 14:15:24 2002 -+++ gd.h Thu Apr 25 12:43:55 2002 -@@ -201,6 +201,10 @@ - - gdImagePtr gdImageCreateFromPngSource(gdSourcePtr in); - -+gdImagePtr gdImageCreateFromGif(FILE *fd); -+gdImagePtr gdImageCreateFromGifCtx(gdIOCtxPtr in); -+gdImagePtr gdImageCreateFromGifSource(gdSourcePtr in); -+ - gdImagePtr gdImageCreateFromGd(FILE *in); - gdImagePtr gdImageCreateFromGdCtx(gdIOCtxPtr in); - -@@ -251,12 +255,26 @@ - char *gdImageStringFT(gdImage *im, int *brect, int fg, char *fontlist, - double ptsize, double angle, int x, int y, char *string); - -+typedef struct { -+ int flags; /* for future expansion logical OR of gdFTEX_ values */ -+ double linespacing; /* fine tune line spacing for '\n' */ -+} gdFTStringExtra, *gdFTStringExtraPtr; -+#define gdFTEX_LINESPACE 1 -+ -+/* FreeType 2 text output with fine tuning */ -+char * -+gdImageStringFTEx(gdImage * im, int *brect, int fg, char * fontlist, -+ double ptsize, double angle, int x, int y, char * string, -+ gdFTStringExtraPtr strex); +--- gd.h Thu Jan 16 11:28:09 2003 ++++ gd.h Mon Mar 24 16:26:14 2003 +@@ -209,4 +209,8 @@ + gdImagePtr gdImageCreateFromPngSource (gdSourcePtr in); + ++ gdImagePtr gdImageCreateFromGif(FILE *fd); ++ gdImagePtr gdImageCreateFromGifCtx(gdIOCtxPtr in); ++ gdImagePtr gdImageCreateFromGifSource(gdSourcePtr in); + -+ - /* Point type for use in polygon drawing. */ - typedef struct { - int x, y; - } gdPoint, *gdPointPtr; + gdImagePtr gdImageCreateFromGd (FILE * in); + gdImagePtr gdImageCreateFromGdCtx (gdIOCtxPtr in); +@@ -300,4 +304,5 @@ - void gdImagePolygon(gdImagePtr im, gdPointPtr p, int n, int c); -+void gdImageOpenPolygon(gdImagePtr im, gdPointPtr p, int n, int c); - void gdImageFilledPolygon(gdImagePtr im, gdPointPtr p, int n, int c); + void gdImagePolygon (gdImagePtr im, gdPointPtr p, int n, int c); ++ void gdImageOpenPolygon(gdImagePtr im, gdPointPtr p, int n, int c); + void gdImageFilledPolygon (gdImagePtr im, gdPointPtr p, int n, int c); - /* These functions still work with truecolor images, -@@ -347,6 +365,14 @@ - /* Best to free this memory with gdFree(), not free() */ - void *gdImageJpegPtr(gdImagePtr im, int *size, int quality); +@@ -395,4 +400,13 @@ + void *gdImageJpegPtr (gdImagePtr im, int *size, int quality); -+void gdImageLzw(gdImagePtr im, FILE *out); -+void* gdImageLzwPtr(gdImagePtr im, int *size); -+void gdImageLzwCtx(gdImagePtr im, gdIOCtxPtr out); ++ void gdImageLzw(gdImagePtr im, FILE *out); ++ void* gdImageLzwPtr(gdImagePtr im, int *size); ++ void gdImageLzwCtx(gdImagePtr im, gdIOCtxPtr out); ++ ++ void gdImageBigGif(gdImagePtr im, FILE *out); ++ void* gdImageBigGifPtr(gdImagePtr im, int *size); ++ void gdImageBigGifCtx(gdImagePtr im, gdIOCtxPtr out); + -+void gdImageBigGif(gdImagePtr im, FILE *out); -+void* gdImageBigGifPtr(gdImagePtr im, int *size); -+void gdImageBigGifCtx(gdImagePtr im, gdIOCtxPtr out); + /* A custom data sink. For backwards compatibility. Use gdIOCtx instead. */ - /* The sink function must return -1 on error, otherwise the number -@@ -358,6 +384,11 @@ - } gdSink, *gdSinkPtr; +@@ -408,4 +422,9 @@ - void gdImagePngToSink(gdImagePtr im, gdSinkPtr out); + void gdImagePngToSink (gdImagePtr im, gdSinkPtr out); + -+void gdImageGif(gdImagePtr im, FILE *out); -+void* gdImageGifPtr(gdImagePtr im, int *size); -+void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out); -+void gdImageGifToSink(gdImagePtr im, gdSinkPtr out); ++ void gdImageGif(gdImagePtr im, FILE *out); ++ void* gdImageGifPtr(gdImagePtr im, int *size); ++ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out); ++ void gdImageGifToSink(gdImagePtr im, gdSinkPtr out); - void gdImageGd(gdImagePtr im, FILE *out); - void gdImageGd2(gdImagePtr im, FILE *out, int cs, int fmt); + void gdImageGd (gdImagePtr im, FILE * out); diff --git a/graphics/gd2/files/patch-gd_png.c b/graphics/gd2/files/patch-gd_png.c deleted file mode 100644 index f81c6db6c87d..000000000000 --- a/graphics/gd2/files/patch-gd_png.c +++ /dev/null @@ -1,11 +0,0 @@ ---- gd_png.c.orig Thu Apr 25 14:15:42 2002 -+++ gd_png.c Thu Apr 25 12:43:55 2002 -@@ -225,7 +225,7 @@ - im->alpha[i] = gdAlphaMax - (trans[i] >> 1); - if ((trans[i] == 0) && (firstZero)) - { -- im->transparent = i; -+ transparent = i; - firstZero = 0; - } - } diff --git a/graphics/gd2/files/patch-gdcache.h b/graphics/gd2/files/patch-gdcache.h deleted file mode 100644 index c0ea11ecbd22..000000000000 --- a/graphics/gd2/files/patch-gdcache.h +++ /dev/null @@ -1,11 +0,0 @@ ---- gdcache.h.orig Thu Apr 25 14:16:05 2002 -+++ gdcache.h Thu Apr 25 12:48:41 2002 -@@ -40,7 +40,7 @@ - /* header */ - /*********************************************************/ - --#include <malloc.h> -+#include <stdlib.h> - #ifndef NULL - #define NULL (void *)0 - #endif diff --git a/graphics/gd2/files/patch-gdft.c b/graphics/gd2/files/patch-gdft.c index 1426fb7c6ad1..cdee3d88935b 100644 --- a/graphics/gd2/files/patch-gdft.c +++ b/graphics/gd2/files/patch-gdft.c @@ -1,166 +1,92 @@ ---- gdft.c.orig Thu Apr 25 14:16:21 2002 -+++ gdft.c Thu Apr 25 12:43:55 2002 -@@ -513,7 +513,8 @@ - gdTrueColorGetRed (fg), - gdTrueColorGetGreen (fg), - gdTrueColorGetBlue (fg), -- gdAlphaMax - (gdTrueColorGetAlpha (fg) * pixel / NUMCOLORS)); -+ gdAlphaMax - ((gdAlphaMax - gdTrueColorGetAlpha (fg)) * pixel / NUMCOLORS) -+ ); +--- gdft.c Thu Jan 16 13:29:32 2003 ++++ gdft.c Mon Mar 24 17:09:54 2003 +@@ -546,8 +546,8 @@ + a->tweencolor = gdTrueColorAlpha (gdTrueColorGetRed (fg), + gdTrueColorGetGreen (fg), + gdTrueColorGetBlue (fg), +- gdAlphaMax - +- (gdTrueColorGetAlpha (fg) * ++ gdAlphaMax - ((gdAlphaMax - ++ gdTrueColorGetAlpha (fg)) * + pixel / NUMCOLORS)); } else - { -@@ -566,76 +567,53 @@ +@@ -680,10 +680,14 @@ + if (y >= im->sy || y < 0) + continue; - for (col = 0; col < bitmap.width; col++, pc++) - { +- for (col = 0; col < bitmap.width; col++, pc++) +- { - if (bitmap.pixel_mode == ft_pixel_mode_grays) - { -+ x = pen_x + col; ++ for (col = 0; col < bitmap.width; col++, pc++) { ++ x = pen_x + col; ++ /* clip if out of bounds */ ++ if (x >= im->sx || x < 0) ++ continue; + -+ /* clip if out of bounds */ -+ if (x >= im->sx || x < 0) -+ continue; -+ -+ switch(bitmap.pixel_mode) { -+ case ft_pixel_mode_grays: ++ switch(bitmap.pixel_mode) { ++ case ft_pixel_mode_grays: /* * Round to NUMCOLORS levels of antialiasing for * index color images since only 256 colors are - * available. - */ -+ +@@ -692,44 +696,38 @@ tc_key.pixel = ((bitmap.buffer[pc] * NUMCOLORS) + bitmap.num_grays / 2) / (bitmap.num_grays - 1); - } - else if (bitmap.pixel_mode == ft_pixel_mode_mono) - { -+ break; -+ case ft_pixel_mode_mono: - tc_key.pixel = ((bitmap.buffer[pc / 8] - << (pc % 8)) & 128) ? NUMCOLORS : 0; +- tc_key.pixel = ((bitmap.buffer[pc / 8] +- << (pc % 8)) & 128) ? NUMCOLORS : 0; ++ break; ++ case ft_pixel_mode_mono: + /* 2.0.5: mode_mono fix from Giuliano Pochini */ + tc_key.pixel = + ((bitmap. + buffer[(col >> 3) + + pcr]) & (1 << (~col & 0x07))) ? NUMCOLORS : 0; - } - else - { -+ break; -+ default: ++ break; ++ default: return "Unsupported ft_pixel_mode"; - } - - if (tc_key.pixel > 0) -- { /* if not background */ +- } ++ } ++ + if (tc_key.pixel > 0) /* if not background */ + { - x = pen_x + col; - - /* clip if out of bounds */ - if (x >= im->sx || x < 0) - continue; - /* get pixel location in gd buffer */ -- if (im->trueColor) - { -- tpixel = &im->tpixels[y][x]; -+ -+ if (im->trueColor) { -+ tc_elem = (tweencolor_t *) gdCacheGet ( -+ tc_cache, &tc_key); -+ -+ gdImageSetPixel(im, x, y, tc_elem->tweencolor); - } -- else -- { -+ else { - pixel = &im->pixels[y][x]; -- } - if (tc_key.pixel == NUMCOLORS) +- pixel = &im->pixels[y][x]; +- if (tc_key.pixel == NUMCOLORS) - { -- /* use fg color directly */ -- if (im->trueColor) -- { -- *tpixel = fg; -- } -- else -- { - *pixel = fg; -- } ++ if (im->trueColor) { ++ tc_elem = (tweencolor_t *)gdCacheGet(tc_cache, &tc_key); ++ gdImageSetPixel(im, x, y, tc_elem->tweencolor); ++ } else { ++ /* get pixel location in gd buffer */ ++ pixel = &im->pixels[y][x]; ++ if (tc_key.pixel == NUMCOLORS) + /* use fg color directly. gd 2.0.2: watch out for + negative indexes (thanks to David Marwood). */ + *pixel = (fg < 0) ? -fg : fg; - } - else - { -- /* find antialised color */ -- if (im->trueColor) -- { -- tc_key.bgcolor = *tpixel; -- } -- else -- { -+ else { - tc_key.bgcolor = *pixel; -- } - tc_elem = (tweencolor_t *) gdCacheGet ( - tc_cache, &tc_key); -- if (im->trueColor) -- { -- *tpixel = tc_elem->tweencolor; -- } -- else -- { - *pixel = tc_elem->tweencolor; -+ - } -+ ++ else { + /* find antialised color */ + + tc_key.bgcolor = *pixel; + tc_elem = (tweencolor_t *) gdCacheGet (tc_cache, &tc_key); + *pixel = tc_elem->tweencolor; } ++ } } } -@@ -647,11 +625,18 @@ - - /********************************************************************/ - /* gdImageStringFT - render a utf8 string onto a gd image */ -- - char * - gdImageStringFT (gdImage * im, int *brect, int fg, char *fontlist, - double ptsize, double angle, int x, int y, char *string) - { -+ return gdImageStringFTEx(im, brect, fg, fontlist, ptsize, angle, x, y, string, NULL); -+} -+ -+char * -+gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, -+ double ptsize, double angle, int x, int y, char *string, -+ gdFTStringExtra * strex) -+{ - FT_BBox bbox, glyph_bbox; - FT_Matrix matrix; - FT_Vector pen, delta, penf; -@@ -672,6 +657,9 @@ - int render = (im && (im->trueColor || (fg <= 255 && fg >= -255))); - FT_BitmapGlyph bm; - -+ /* fine tuning */ -+ double linespace = LINESPACE; -+ - /***** initialize font library and font cache on first call ******/ - static gdCache_head_t *fontCache; - static FT_Library library; -@@ -704,6 +692,14 @@ - return "Could not set character size"; } - -+ /* pull in supplied extended settings */ -+ if (strex) { -+ if (strex->flags & gdFTEX_LINESPACE == gdFTEX_LINESPACE) -+ linespace = strex->linespacing; -+ -+ } -+ -+ - matrix.xx = (FT_Fixed) (cos_a * (1 << 16)); - matrix.yx = (FT_Fixed) (sin_a * (1 << 16)); - matrix.xy = -matrix.yx; -@@ -754,7 +750,7 @@ - /* newlines */ - if (ch == '\n') - { -- penf.y -= face->size->metrics.height * LINESPACE; -+ penf.y -= face->size->metrics.height * linespace; - penf.y = (penf.y - 32) & -64; /* round to next pixel row */ - x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64; - y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64; diff --git a/graphics/gd2/files/patch-gdtest.c b/graphics/gd2/files/patch-gdtest.c index 292daaedfaa1..85c855d4db02 100644 --- a/graphics/gd2/files/patch-gdtest.c +++ b/graphics/gd2/files/patch-gdtest.c @@ -2,7 +2,7 @@ +++ gdtest.c Tue Nov 6 15:53:38 2001 @@ -84,6 +84,35 @@ gdImageDestroy (im2); - ctx->free (ctx); + ctx->gd_free (ctx); + /* */ + /* Send to GIF File then Ptr */ @@ -32,7 +32,7 @@ + CompareImages("GD->GIF ptr->GD", ref, im2); + + gdImageDestroy(im2); -+ ctx->free(ctx); ++ ctx->gd_free(ctx); /* */ /* Send to GD2 File then Ptr */ diff --git a/graphics/gd2/files/patch-gdtestft.c b/graphics/gd2/files/patch-gdtestft.c deleted file mode 100644 index 9f71e2a8dccb..000000000000 --- a/graphics/gd2/files/patch-gdtestft.c +++ /dev/null @@ -1,99 +0,0 @@ ---- gdtestft.c.orig Thu Apr 25 14:17:03 2002 -+++ gdtestft.c Wed Nov 7 00:43:02 2001 -@@ -18,6 +18,8 @@ - #define MAXY(x) MAX4(x[1],x[3],x[5],x[7]) - #define MINY(x) MIN4(x[1],x[3],x[5],x[7]) - -+void CompareImages(char *msg, gdImagePtr im1, gdImagePtr im2); -+ - int - main (int argc, char *argv[]) - { -@@ -28,13 +30,13 @@ - fprintf (stderr, "make clean, and type make again.\n"); - return 1; - #else -- gdImagePtr im; -+ gdImagePtr im, ref; - int black; - int white; - int brect[8]; - int x, y; - char *err; -- FILE *out; -+ FILE *out, *in; - #ifdef JISX0208 - char *s = "Hello. こんにちは Qyjpqg,"; /* String to draw. */ - #else -@@ -67,8 +69,8 @@ - /* create an image just big enough for the string */ - x = MAXX (brect) - MINX (brect) + 6; - y = MAXY (brect) - MINY (brect) + 6; --#if 0 -- im = gdImageCreate (500, 500); -+#if 0 -+ im = gdImageCreate (x, y); - #else - /* gd 2.0: true color images can use freetype too */ - im = gdImageCreateTrueColor (x, y); -@@ -90,6 +92,16 @@ - fprintf (stderr, err); - return 1; - } -+ -+ in = fopen("test/fttestref.png", "rb"); -+ if (!in) { -+ fprintf(stderr, "Input file does not exist!\n"); -+ exit(1); -+ } -+ ref = gdImageCreateFromPng(in); -+ -+ fclose(in); -+ - /* TBB: Write img to test/fttest.png */ - out = fopen ("test/fttest.png", "wb"); - if (!out) -@@ -100,9 +112,43 @@ - gdImagePng (im, out); - fclose (out); - fprintf (stderr, "Test image written to test/fttest.png\n"); -+ -+ CompareImages("FTTest Image", ref, im); -+ - /* Destroy it */ - gdImageDestroy (im); -+ gdImageDestroy(ref); - - return 0; - #endif /* HAVE_FREETYPE */ - } -+ -+void CompareImages(char *msg, gdImagePtr im1, gdImagePtr im2) -+{ -+ int cmpRes; -+ -+ cmpRes = gdImageCompare(im1, im2); -+ -+ if (cmpRes & GD_CMP_IMAGE) { -+ printf("%%%s: ERROR images differ: BAD\n",msg); -+ } else if (cmpRes != 0) { -+ printf("%%%s: WARNING images differ: WARNING - Probably OK\n",msg); -+ } else { -+ printf("%%%s: OK\n",msg); -+ return; -+ } -+ -+ if (cmpRes & (GD_CMP_SIZE_X + GD_CMP_SIZE_Y)) { -+ printf("-%s: INFO image sizes differ\n",msg); -+ } -+ -+ if (cmpRes & GD_CMP_NUM_COLORS) { -+ printf("-%s: INFO number of pallette entries differ %d Vs. %d\n",msg, -+ im1->colorsTotal, im2->colorsTotal); -+ } -+ -+ if (cmpRes & GD_CMP_COLOR) { -+ printf("-%s: INFO actual colours of pixels differ\n",msg); -+ } -+} -+ diff --git a/graphics/gd2/files/patch-index.html b/graphics/gd2/files/patch-index.html index dfb4a4c7697d..da061462fe6c 100644 --- a/graphics/gd2/files/patch-index.html +++ b/graphics/gd2/files/patch-index.html @@ -1,23 +1,20 @@ ---- index.html.orig Thu Apr 25 14:17:36 2002 -+++ index.html Tue Nov 6 23:31:10 2001 -@@ -24,7 +24,12 @@ - more compatible with the major Web browsers than even PNG is. WBMP is - intended for wireless devices (not regular web browsers). Existing - code will need modification to call gdImagePng or gdImageJpeg instead --of gdImageGif. <strong>Please do not ask us to send you the old GIF -+of gdImageGif. -+<p> -+Note: The version at this site also supports GIF format, for those people -+who have not yet managed to move away from GIFs. -+<p> -+<strong>Please do not ask the original author to send you the old GIF - version of GD.</strong> Unisys holds a patent on the LZW compression - algorithm, which is used in fully compressed GIF images. The best - solution is to move to legally unencumbered, well-compressed, -@@ -103,6 +108,18 @@ - <p> - Portions relating to libttf copyright 1999, 2000 John Ellson (ellson@lucent.com). +--- index.html Mon Nov 25 11:39:31 2002 ++++ index.html Wed Nov 27 12:47:38 2002 +@@ -35,4 +35,9 @@ + modern image formats such as PNG and JPEG as soon as possible. + ++<p>Note, that the FreeBSD port of gd2 includes support for GIF files ++ported from the earlier releases of gd. If the WITH_LZW was defined at ++build time, the software will also use LZW-compression when creating ++GIF files. ++ <p> + gd 2.0.8 <strong>requires</strong> that the following libraries +@@ -116,4 +121,18 @@ + Portions relating to WBMP copyright 2000, 2001, 2002 Maurice Szmurlo and Johan Van + den Brande. ++ ++<p> +GIF decompression code copyright 1990, 1991, 1993, by David Koblas +(koblas@netcom.com). +<p> @@ -29,63 +26,34 @@ +Obtaining a license for the Unisys LZW compression patent is +entirely between the user and Unisys. The authors of gd can provide +NO assistance in this matter. -+<p> - Portions relating to JPEG and to color quantization copyright 2000, Doug - Becker and copyright (C) 1994-1998, Thomas G. Lane. This software is based - in part on the work of the Independent JPEG Group. See the file -@@ -193,6 +210,26 @@ - <li><a href="http://s27w007.pswfs.gov/tgd/">tgd</a>, by Bradley K. Sherman - <li><a href="http://www.unimelb.edu.au/fly/fly.html">fly</a>, by Martin Gleeson ++ + <p> + <strong>Permission has been granted to copy, distribute and modify gd in any +@@ -192,5 +211,22 @@ + <li><a href="http://martin.gleeson.com/fly/">fly</a>, by Martin Gleeson </ul> +-<P> + -+<P><A NAME="gifpatch"><H3>What's new in the patched version?</H3></A> ++<P><A NAME="gifpatch"><H3>What does the FreeBSD port add?</H3></A> + -+This version reinstates GIF support. Specifically, the following functions are added: -+<ul> -+<li><a href=#gdImageOpenPolygon>gdImageOpenPolygon</a>. This is basically the same as -+gdImagePolygon, but it does not join the start and end points. It is required by GD.pm. -+<li><a href=#gdImageGif>gdImageGif</a> -+<li><a href=#gdImageGifPtr>gdImageGifPtr</a> -+<li><a href=#gdImageGifCtx>gdImageGifCtx</a> -+<li><a href=#gdImageGifToSink>gdImageGifToSink</a> -+<li><a href=#gdImageCreateFromGif>gdImageCreateFromGif</a> -+<li><a href=#gdImageCreateFromGifCtx>gdImageCreateFromGifCtx</a> -+<li>Other functions added, but not documented, are: gdImageLzw, gdImageLzwPtr, -+gdImageLzwCtx, gdImageBigGif, gdImageBigGifPtr, gdImageBigGifCtx. -+</ul> -+<p> -+Note: While every effort has been made to ensure that the _WinNT_ build works, it has not -+been tested. ++<p>This version reinstates GIF support. Specifically, the following ++functions are added: gdImageGif, gdImageGifPtr, gdImageGifCtx, ++gdImageGifToSink, gdImageCreateFromGif, gdImageCreateFromGifCtx, ++gdImageCreateFromGifSource. ++The can be used just like the corresponding functions for the other ++image formats. + - <P><A NAME="whatsnew2.0.1"><H3>What's new in version 2.0.1?</H3></A> - <ul> - <li>Workaround for a bug in gcc, apparently found in gcc 2.7.2 and up. -@@ -311,6 +348,7 @@ - preprocessing them, this should not be a big problem. gd 2.0 should - read old .gd and .gd2 files correctly. - </ul> -+ - <P><A NAME="whatsnew1.8.4"><H3>What's new in version 1.8.4?</H3></A> - <ul> - <li>Add support for FreeType2 (John Ellson ellson@lucent.com) -@@ -343,6 +381,7 @@ - corrected - <li>Updated links to fast-moving, always dodging libpng and zlib web sites - </ul> ++<p>Other functions added, but not documented, are: gdImageLzw, ++gdImageLzwPtr, gdImageLzwCtx, gdImageBigGif, gdImageBigGifPtr, ++gdImageBigGifCtx. + - <P><A NAME="whatsnew1.8.1"><H3>What's new in version 1.8.1?</H3></A> - <ul> - <li>Optional components no longer built by default (following the -@@ -420,6 +459,7 @@ - <a href="#gdImageCreateFromXpm"><code>gdImageCreateFromXpm</code></a> - function, if the Xpm library is available. Thanks to Caolan McNamara. - </ul> ++<p>The <a href=#gdImageOpenPolygon>gdImageOpenPolygon</a> is added. ++This is basically the same as <a href=#gdImagePolygon>gdImagePolygon</A>, ++but it does not join the start and end points. It is required by GD.pm. + - <P><A NAME="whatsnew1.6.3"><H3>What's new in version 1.6.3?</H3></A> - Version 1.6.3 corrects a memory leak in gd_png.c. This leak caused - a significant amount of memory to be allocated and not freed when -@@ -911,7 +951,8 @@ - <DT><A NAME="gdPoint">gdPoint</A> <strong>(TYPE)</strong> + <A NAME="whatsnew2.0.8"><H3>What's new in version 2.0.8?</H3></A> + <P> +@@ -1058,5 +1094,6 @@ <DD> Represents a point in the coordinate space of the image; used -by <A HREF="#gdImagePolygon">gdImagePolygon</A> and @@ -93,228 +61,11 @@ +<A HREF="#gdImageOpenPolygon">gdImageOpenPolygon</A>, and <A HREF="#gdImageFilledPolygon">gdImageFilledPolygon</A>. <PRE> - typedef struct { -@@ -921,7 +962,8 @@ - <DT><A NAME="gdPointPtr">gdPointPtr</A> <strong>(TYPE)</strong> +@@ -1068,5 +1105,6 @@ <DD> A pointer to a <A HREF="#gdPoint">gdPoint</A> structure; passed -as an argument to <A HREF="#gdImagePolygon">gdImagePolygon</A> +as an argument to <A HREF="#gdImagePolygon">gdImagePolygon</A>, -+<A HREF="#gdImageOpenPolygon">gdImageOpenPolygon</A>, ++<A HREF="#gdImageOpenPolygon">gdImageOpenPolygon</A>, and <A HREF="#gdImageFilledPolygon">gdImageFilledPolygon</A>. </DL> - <DT><A NAME="gdSource">gdSource</A> <strong>(TYPE)</strong> -@@ -1024,6 +1066,75 @@ - /* ... Use the image ... */ - <A HREF="#gdImageDestroy">gdImageDestroy</A>(im); - </PRE> -+ -+<DT><A NAME="gdImageCreateFromGif">gdImageCreateFromGif(FILE *in)</A> -+<strong>(FUNCTION)</strong> -+<BR><A NAME="gdImageCreateFromGifCtx">gdImageCreateFromGifCtx(<a href=#gdioctx>gdIOCtx</a> *in)</A> -+<strong>(FUNCTION)</strong> -+<p> -+<DD> -+gdImageCreateFromGif is called to load images from GIF format files. -+Invoke gdImageCreateFromGif with an already opened pointer to a file -+containing the desired image. -+gdImageCreateFromGif -+returns a <A HREF="#gdImagePtr">gdImagePtr</A> to the new image, or NULL -+if unable to load the image (most often because the file is corrupt or -+does not contain a GIF image). gdImageCreateFromGif does <em>not</em> -+close the file. You can inspect the sx and sy members of the -+image to determine its size. The image must eventually be destroyed -+using <A HREF="#gdImageDestroy">gdImageDestroy()</A>. -+<PRE> -+<A HREF="#gdImagePtr">gdImagePtr</A> im; -+... inside a function ... -+FILE *in; -+in = fopen("mygif.gif", "rb"); -+im = gdImageCreateFromGif(in); -+fclose(in); -+/* ... Use the image ... */ -+<A HREF="#gdImageDestroy">gdImageDestroy</A>(im); -+</PRE> -+<DT><A NAME="gdImageCreateFromGifSource">gdImageCreateFromGifSource(gdSourcePtr in)</A> -+<strong>(FUNCTION)</strong> -+<dd> -+gdImageCreateFromGifSource is called to load a GIF from -+a data source other than a file. Usage is very similar to -+the <a href="#gdImageCreateFromGif">gdImageCreateFromGif</a> function, -+except that the programmer provides a custom data source. -+<p> -+The programmer must write an input function which accepts -+a context pointer, a buffer, and a number of bytes to be -+read as arguments. This function must read the number of -+bytes requested, unless the end of the file has been reached, -+in which case the function should return zero, or an error -+has occurred, in which case the function should return -+<code>-1</code>. The programmer then creates a -+<a href="#gdSource">gdSource</a> structure and sets -+the <code>source</code> pointer to the input function and -+the context pointer to any value which is useful to the -+programmer. -+<p> -+The example below -+implements <a href="#gdImageCreateFromGif">gdImageCreateFromGif</a> -+by creating a custom data source and invoking gdImageCreateFromGifSource. -+<pre> -+static int freadWrapper(void *context, char *buf, int len); -+ -+gdImagePtr gdImageCreateFromGif(FILE *in) -+{ -+ gdSource s; -+ s.source = freadWrapper; -+ s.context = in; -+ return gdImageCreateFromGifSource(&s); -+} -+ -+static int freadWrapper(void *context, char *buf, int len) -+{ -+ int got = fread(buf, 1, len, (FILE *) context); -+ return got; -+} -+</pre> -+ -+ - <DT><A NAME="gdImageCreateFromPng">gdImageCreateFromPng(FILE *in)</A> - <strong>(FUNCTION)</strong> - <BR><A NAME="gdImageCreateFromPngCtx">gdImageCreateFromPngCtx(<a href=#gdioctx>gdIOCtx</a> *in)</A> -@@ -1239,6 +1350,92 @@ - /* Now destroy it */ - <A HREF="#gdImageDestroy">gdImageDestroy</A>(im); - </PRE> -+ -+<DT><A NAME="gdImageGif"> -+void gdImageGif(gdImagePtr im, FILE *out)</A> -+<STRONG>(FUNCTION)</STRONG> -+<DD> -+gdImageGif outputs the specified image to the specified -+file in GIF format. The file must be open for writing. Under MSDOS -+and all versions of Windows, it is important to use "wb" as opposed -+to simply "w" as the mode when opening the file, and under Unix there -+is no penalty for doing so. gdImageGif does <em>not</em> -+close the file; your code must do so. -+<PRE> -+... inside a function ... -+<A HREF="#gdImagePtr">gdImagePtr</A> im; -+int black, white; -+FILE *out; -+/* Create the image */ -+im = <A HREF="#gdImageCreate">gdImageCreate</A>(100, 100); -+/* Allocate background */ -+white = <A HREF="#gdImageColorAllocate">gdImageColorAllocate</A>(im, 255, 255, 255); -+/* Allocate drawing color */ -+black = <A HREF="#gdImageColorAllocate">gdImageColorAllocate</A>(im, 0, 0, 0); -+/* Draw rectangle */ -+<A HREF="#gdImageRectangle">gdImageRectangle</A>(im, 0, 0, 99, 99, black); -+/* Open output file in binary mode */ -+out = fopen("rect.gif", "wb"); -+/* Write GIF */ -+gdImageGif(im, out); -+/* Close file */ -+fclose(out); -+/* Destroy image */ -+<A HREF="#gdImageDestroy">gdImageDestroy</A>(im); -+</PRE> -+ -+<DT><A NAME="gdImageGifCtx"> -+void* gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)</A> -+<STRONG>(FUNCTION)</STRONG> -+<DD>Identical to gdImageGif except that it writes the GIF to a -+<a href=#gdIOCtx>gdIOCtx</a>. -+<p> -+<DT><A NAME="gdImageGifPtr"> -+void* gdImageGifPtr(gdImagePtr im, int *size)</A> -+<STRONG>(FUNCTION)</STRONG> -+<DD>Identical to gdImageGif except that it returns a pointer to a memory -+area with the GIF data. This memory must be freed by the caller when it is -+no longer needed. The 'size' parameter received the total size of the block -+of memory. -+<p> -+ -+<DT><A NAME="gdImageGifToSink">gdImageGifToSink(gdImagePtr im, gdSinkPtr out)</A> -+<strong>(FUNCTION)</strong> -+<dd> -+gdImageGifToSink is called to write a GIF to -+a data "sink" (destination) other than a file. Usage is very similar to -+the <a href="#gdImageGif">gdImageGif</a> function, -+except that the programmer provides a custom data sink. -+<p> -+The programmer must write an output function which accepts -+a context pointer, a buffer, and a number of bytes to be -+written as arguments. This function must write the number of -+bytes requested and return that number, unless an error -+has occurred, in which case the function should return -+<code>-1</code>. The programmer then creates a -+<a href="#gdSink">gdSink</a> structure and sets -+the <code>sink</code> pointer to the output function and -+the context pointer to any value which is useful to the -+programmer. -+<p> -+The example below -+implements <a href="#gdImageGif">gdImageGif</a> -+by creating a custom data source and invoking gdImageGifFromSink. -+<pre> -+static int stdioSink(void *context, char *buffer, int len) -+{ -+ return fwrite(buffer, 1, len, (FILE *) context); -+} -+ -+void gdImageGif(gdImagePtr im, FILE *out) -+{ -+ gdSink mySink; -+ mySink.context = (void *) out; -+ mySink.sink = stdioSink; -+ gdImageGifToSink(im, &mySink); -+} -+</pre> -+ - <DT><A NAME="gdImageJpeg"> - void gdImageJpeg(gdImagePtr im, FILE *out, int quality)</A> - <STRONG>(FUNCTION)</STRONG><BR> -@@ -1642,6 +1839,15 @@ - /* Destroy it */ - <A HREF="#gdImageDestroy">gdImageDestroy</A>(im); - </PRE> -+ -+<DT><A NAME="gdImageOpenPolygon">void gdImageOpenPolygon(gdImagePtr im, gdPointPtr points, int pointsTotal, int color)</A> -+<STRONG>(FUNCTION)</STRONG> -+<DD> -+gdImageOpenPolygon is used to draw an open polygon (ie. series of line segments). It is almost identical -+to <A HREF="#gdImagePolygon">gdImagePolygon</A>, except that it does not join the last point to the -+first point. -+<P> -+ - <DT><A NAME="gdImageRectangle">void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color)</A> - <STRONG>(FUNCTION)</STRONG> - <DD> -@@ -3552,6 +3758,9 @@ - <A HREF="#gdImageCreateFromGd">gdImageCreateFromGd</A> | - <A HREF="#gdImageCreateFromGd2">gdImageCreateFromGd2</A> | - <A HREF="#gdImageCreateFromGd2Part">gdImageCreateFromGd2Part</A> | -+<A HREF="#gdImageCreateFromGif">gdImageCreateFromGif</A> | -+<A HREF="#gdImageCreateFromGifCtx">gdImageCreateFromGifCtx</A> | -+<A HREF="#gdImageCreateFromGifSource">gdImageCreateFromGifSource</A> | - <A HREF="#gdImageCreateFromJpeg">gdImageCreateFromJpeg</A> | - <A HREF="#gdImageCreateFromPng">gdImageCreateFromPng</A> | - <A HREF="#gdImageCreateFromPngSource">gdImageCreateFromPngSource</A> | -@@ -3569,6 +3778,10 @@ - <A HREF="#gdImageGetInterlaced">gdImageGetInterlaced</A> | - <A HREF="#gdImageGetPixel">gdImageGetPixel</A> | - <A HREF="#gdImageGetTransparent">gdImageGetTransparent</A> | -+<A HREF="#gdImageGif">gdImageGif</A> | -+<A HREF="#gdImageGifCtx">gdImageGifCtx</A> | -+<A HREF="#gdImageGifPtr">gdImageGifPtr</A> | -+<A HREF="#gdImageGifToSink">gdImageGifToSink</A> | - <A HREF="#gdImageGreen">gdImageGreen</A> | - <A HREF="#gdImageInterlace">gdImageInterlace</A> | - <A HREF="#gdImageJpeg">gdImageJpeg</A> | -@@ -3578,6 +3791,7 @@ - <A HREF="#gdImagePng">gdImagePng</A> | - <A HREF="#gdImagePngToSink">gdImagePngToSink</A> | - <A HREF="#gdImagePolygon">gdImagePolygon</A> | -+<A HREF="#gdImageOpenPolygon">gdImageOpenPolygon</A> | - <A HREF="#gdImagePtr">gdImagePtr</A> | - <A HREF="#gdImageWBMP">gdImageWBMP</A> | - <A HREF="#gdImageRectangle">gdImageRectangle</A> | diff --git a/graphics/gd2/files/patch-webpng.c b/graphics/gd2/files/patch-webpng.c deleted file mode 100644 index fef8b31f40f4..000000000000 --- a/graphics/gd2/files/patch-webpng.c +++ /dev/null @@ -1,66 +0,0 @@ ---- webpng.c.orig Thu Apr 25 14:19:03 2002 -+++ webpng.c Thu Apr 25 12:43:55 2002 -@@ -168,12 +168,12 @@ - t = gdImageGetTransparent (im); - if (t != (-1)) - { -- printf ("First 100% transparent index: %d\n", t); -+ printf ("First 100%% transparent index: %d\n", t); - } - else - { - /* -1 means the image is not transparent. */ -- printf ("First 100% transparent index: none\n"); -+ printf ("First 100%% transparent index: none\n"); - } - if (gdImageGetInterlaced (im)) - { -@@ -185,6 +185,40 @@ - } - no = 0; - } -+ else if (!strcmp(argv[i], "-a")) -+ { -+ int maxx, maxy, x, y, alpha, pix, nalpha = 0; -+ -+ maxx = gdImageSX(im); -+ maxy = gdImageSY(im); -+ -+ printf("alpha channel information:\n"); -+ -+ if (im->trueColor) { -+ for (y = 0; y < maxy; y++) { -+ for (x = 0; x < maxx; x++) { -+ pix = gdImageGetPixel(im, x, y); -+ alpha = gdTrueColorGetAlpha(pix); -+ -+ if (alpha > gdAlphaOpaque) { -+ /* Use access macros to learn colors. */ -+ printf ("%d %d %d %d\n", -+ gdTrueColorGetRed(pix), -+ gdTrueColorGetGreen(pix), -+ gdTrueColorGetBlue(pix), -+ alpha); -+ nalpha++; -+ } -+ -+ } -+ } -+ } -+ else -+ printf("NOT a true color image\n"); -+ no = 0; -+ printf("%d alpha channels\n", nalpha); -+ -+ } - else - { - fprintf (stderr, "Unknown argument: %s\n", argv[i]); -@@ -202,6 +236,7 @@ - " -l Prints the table of color indexes\n" - " -t [index] Set the transparent color to the specified index (0-255 or \"none\")\n" - " -d Reports the dimensions and other characteristics of the image.\n" -+ " -a Prints all alpha channels that are not 100%% opaque.\n" - "\n" - "If you specify '-' as the input file, stdin/stdout will be used input/output.\n" - ); diff --git a/graphics/gd2/pkg-plist b/graphics/gd2/pkg-plist index c26106efe446..baf9c27df669 100644 --- a/graphics/gd2/pkg-plist +++ b/graphics/gd2/pkg-plist @@ -1,3 +1,4 @@ +bin/annotate bin/bdftogd bin/gd2copypal bin/gd2togif |