summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am2
-rw-r--r--src/gd.c2
-rw-r--r--src/gd_color_map_test.c27
-rw-r--r--src/gd_matrix.c28
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
diff --git a/src/gd.c b/src/gd.c
index 3586acc..db96cc9 100644
--- a/src/gd.c
+++ b/src/gd.c
@@ -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;
}