diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/gd.c | 2 | ||||
-rw-r--r-- | src/gd_color_map_test.c | 27 | ||||
-rw-r--r-- | src/gd_matrix.c | 28 |
4 files changed, 28 insertions, 31 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 076aabd..dbe9243 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ ## Process this file with automake to produce Makefile.in -*-Makefile-*- bin_PROGRAMS = gdcmpgif -check_PROGRAMS = gifanimtest gd_color_map_test +check_PROGRAMS = gifanimtest if HAVE_LIBPNG bin_PROGRAMS += gdtopng pngtogd webpng @@ -3551,7 +3551,7 @@ BGD_DECLARE(void) gdImageCopyResampled (gdImagePtr dst, red = red >= 255.5 ? 255 : red+0.5; blue = blue >= 255.5 ? 255 : blue+0.5; green = green >= 255.5 ? 255 : green+0.5; - alpha = alpha >= gdAlphaMax+0.5 ? 255 : alpha+0.5; + alpha = alpha >= gdAlphaMax+0.5 ? gdAlphaMax : alpha+0.5; gdImageSetPixel(dst, x, y, gdTrueColorAlpha ((int)red, (int)green, (int)blue, (int)alpha)); } } diff --git a/src/gd_color_map_test.c b/src/gd_color_map_test.c deleted file mode 100644 index 26e08bd..0000000 --- a/src/gd_color_map_test.c +++ /dev/null @@ -1,27 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdio.h> -#include "gd.h" -#include "gd_color_map.h" - -int -main(void) -{ - int r, g, b; - int i; - for (i=0; i<GD_COLOR_MAP_X11.num_entries; i++) { - char *color_name = GD_COLOR_MAP_X11.entries[i].color_name; - if (gdColorMapLookup(GD_COLOR_MAP_X11, color_name, &r, &g, &b)) { - printf("%s found: #%02x%02x%02x\n", color_name, r, g, b); - } else { - fprintf(stderr, "%s not found\n", color_name); - return 1; - } - } - if (gdColorMapLookup(GD_COLOR_MAP_X11, "no such name", &r, &g, &b)) { - return 2; - } - return 0; -} diff --git a/src/gd_matrix.c b/src/gd_matrix.c index ada63e6..7ee2e6f 100644 --- a/src/gd_matrix.c +++ b/src/gd_matrix.c @@ -12,7 +12,28 @@ /** * Title: Matrix * Group: Affine Matrix - */ + * + * Matrix functions to initialize, transform and various other operations + * on these matrices. + * They can be used with gdTransformAffineCopy and are also used in various + * transformations functions in GD. + * + * matrix are create using a 6 elements double array: + * (start code) + * matrix[0] == xx + * matrix[1] == yx + * matrix[2] == xy + * matrix[3] == xy + * matrix[4] == x0 + * matrix[5] == y0 + * (end code) + * where the transformation of a given point (x,y) is given by: + * + * (start code) + * x_new = xx * x + xy * y + x0; + * y_new = yx * x + yy * y + y0; + * (end code) +*/ /** * Function: gdAffineApplyToPointF @@ -63,7 +84,10 @@ BGD_DECLARE(int) gdAffineInvert (double dst[6], const double src[6]) { double r_det = (src[0] * src[3] - src[1] * src[2]); - if (fabs(r_det) <= 0.0) { + if (!isfinite(r_det)) { + return GD_FALSE; + } + if (r_det == 0) { return GD_FALSE; } |