summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authortabe <none@none>2008-11-23 14:32:35 +0000
committertabe <none@none>2008-11-23 14:32:35 +0000
commitb14559beb715a5acfffff3adfd2d55501944efa1 (patch)
tree773cdbf34ce10a3ef9098b9b2bfb346eba6d053e /tests
parent2b567ef37e945e985a8d24f02997b736463bcb96 (diff)
downloadlibgd-b14559beb715a5acfffff3adfd2d55501944efa1.tar.gz
added gdImageColorReplaceThreshold. (see FS#170)
- added gd_color.[ch] for internal use
Diffstat (limited to 'tests')
-rw-r--r--tests/gdimagecolorreplace/gdimagecolorreplace.c48
1 files changed, 45 insertions, 3 deletions
diff --git a/tests/gdimagecolorreplace/gdimagecolorreplace.c b/tests/gdimagecolorreplace/gdimagecolorreplace.c
index 591d259..02ae9ab 100644
--- a/tests/gdimagecolorreplace/gdimagecolorreplace.c
+++ b/tests/gdimagecolorreplace/gdimagecolorreplace.c
@@ -19,16 +19,40 @@ static int callback(gdImagePtr im, int src)
static void run_tests(gdImagePtr im, int *error)
{
- int white, black, c, d;
+ int black, \
+ white, \
+ cosmic_latte, \
+ cream, \
+ ivory, \
+ magnolia, \
+ old_lace, \
+ seashell, \
+ yellow, \
+ red, \
+ c, d;
int src[2], dst[2];
int n;
+#define COLOR(name, r, g, b) name = gdImageColorAllocateAlpha(im, r, g, b, gdAlphaOpaque)
+ COLOR(black, 0, 0, 0);
+ COLOR(white, 0xFF, 0xFF, 0xFF);
+ COLOR(cosmic_latte, 0xFF, 0xF8, 0xE7);
+ COLOR(cream, 0xFF, 0xFD, 0xD0);
+ COLOR(ivory, 0xFF, 0xFF, 0xF0);
+ COLOR(magnolia, 0xF8, 0xF4, 0xFF);
+ COLOR(old_lace, 0xFD, 0xF5, 0xE6);
+ COLOR(seashell, 0xFF, 0xF5, 0xEE);
+ COLOR(yellow, 0xFF, 0xFF, 0);
+ COLOR(red, 0xFF, 0, 0);
+#undef COLOR
+
#define CHECK_VALUE(n, expected) do { \
if (gdTestAssert((n) == (expected)) != 1) { \
printf("%d is expected, but %d\n", expected, n); \
*error = -1; \
} \
} while (0)
+
#define CHECK_PIXEL(x, y, expected) do { \
gdImageSetClip(im, 0, 0, 4, 4); \
c = gdImageGetPixel(im, (x), (y)); \
@@ -38,8 +62,6 @@ static void run_tests(gdImagePtr im, int *error)
} \
} while (0)
- white = gdImageColorAllocate(im, 0xFF, 0xFF, 0xFF);
- black = gdImageColorAllocate(im, 0, 0, 0);
c = gdImageColorAllocate(im, 0xFF, 0, 0xFF);
gdImageFilledRectangle(im, 0, 0, 4, 4, white);
gdImageFilledRectangle(im, 0, 0, 3, 3, black);
@@ -85,6 +107,26 @@ static void run_tests(gdImagePtr im, int *error)
CHECK_PIXEL(2, 3, d);
CHECK_PIXEL(4, 4, d);
+#define INITIALIZE_IMAGE() \
+ gdImageSetClip(im, 0, 0, 4, 4); \
+ gdImageFilledRectangle(im, 0, 0, 4, 4, black); \
+ gdImageFilledRectangle(im, 1, 1, 3, 3, white); \
+ gdImageSetPixel(im, 1, 1, cosmic_latte); \
+ gdImageSetPixel(im, 1, 2, cream); \
+ gdImageSetPixel(im, 2, 1, ivory); \
+ gdImageSetPixel(im, 2, 2, magnolia); \
+ gdImageSetPixel(im, 3, 1, old_lace); \
+ gdImageSetPixel(im, 3, 2, seashell)
+
+ INITIALIZE_IMAGE();
+ n = gdImageColorReplaceThreshold(im, white, yellow, 2.0);
+ CHECK_VALUE(n, 9);
+ CHECK_PIXEL(0, 0, black);
+ CHECK_PIXEL(1, 1, yellow);
+ CHECK_PIXEL(2, 2, yellow);
+ CHECK_PIXEL(3, 3, yellow);
+
+#undef INITIALIZE_IMAGE
#undef CHECK_VALUE
#undef CHECK_PIXEL
}