int main() { #if defined(JPEG_LIB_VERSION_MAJOR) && JPEG_LIB_VERSION_MAJOR >= 8 printf("skip, JPEG Major version too high (%i)\n", JPEG_LIB_VERSION_MAJOR); return 0; #else gdImagePtr im; FILE *fp; char path[1024]; snprintf(path, sizeof(path)-1, "%s/jpeg/conv_test.jpeg", GDTEST_TOP_DIR); fp = fopen(path, "rb"); if (!fp) { gdTestErrorMsg("failed, cannot open file: %s\n", path); return 1; } im = gdImageCreateFromJpeg(fp); fclose(fp); if (im == NULL) { gdTestErrorMsg("gdImageCreateFromJpeg failed.\n"); return 1; } snprintf(path, sizeof(path), "%s/jpeg/conv_test_exp.png", GDTEST_TOP_DIR); if (!gdAssertImageEqualsToFile(path, im)) { gdTestErrorMsg("gdAssertImageEqualsToFile failed: <%s>.\n", path); gdImageDestroy(im); return 1; } return 0; #endif }
int main() { gdImagePtr src, dst; int r, g, b; void *p; int size = 0; int status = 0; CuTestImageResult result = {0, 0}; src = gdImageCreate(100, 100); if (src == NULL) { gdTestErrorMsg("could not create src\n"); return 1; } r = gdImageColorAllocate(src, 0xFF, 0, 0); g = gdImageColorAllocate(src, 0, 0xFF, 0); b = gdImageColorAllocate(src, 0, 0, 0xFF); gdImageFilledRectangle(src, 0, 0, 99, 99, r); gdImageRectangle(src, 20, 20, 79, 79, g); gdImageEllipse(src, 70, 25, 30, 20, b); #define OUTPUT_GD2(x) do { \ FILE *fp = gdTestTempFp(); \ gdImageGd2(x, fp, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED); \ fclose(fp); \ } while (0) OUTPUT_GD2(src); p = gdImageGd2Ptr(src, (GD2_CHUNKSIZE_MIN+GD2_CHUNKSIZE_MAX)/2, GD2_FMT_COMPRESSED, &size); if (p == NULL) { status = 1; gdTestErrorMsg("p is null\n"); goto door0; } if (size <= 0) { status = 1; gdTestErrorMsg("size is non-positive\n"); goto door1; } dst = gdImageCreateFromGd2Ptr(size, p); if (dst == NULL) { status = 1; gdTestErrorMsg("could not create dst\n"); goto door1; } OUTPUT_GD2(dst); gdTestImageDiff(src, dst, NULL, &result); if (result.pixels_changed > 0) { status = 1; gdTestErrorMsg("pixels changed: %d\n", result.pixels_changed); } gdImageDestroy(dst); door1: gdFree(p); door0: gdImageDestroy(src); return status; }
int main() { gdImagePtr im, exp; char path[2048]; const char *file_im = "gdimagerotate/php_bug_64898.png"; const char *file_exp = "gdimagerotate/php_bug_64898_exp.png"; FILE *fp; int color; sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_im); fp = fopen(path, "rb"); if (!fp) { gdTestErrorMsg("opening PNG %s for reading failed.\n", path); return 1; } im = gdImageCreateTrueColor(141, 200); if (!im) { gdTestErrorMsg("loading %s failed.\n", path); return 1; } gdImageFilledRectangle(im, 0, 0, 140, 199, 0x00ffffff); /* Try default interpolation method, but any non-optimized fails */ /* gdImageSetInterpolationMethod(im, GD_BICUBIC_FIXED); */ exp = gdImageRotateInterpolated(im, 45, 0x0); if (!exp) { gdTestErrorMsg("rotating image failed.\n"); gdImageDestroy(im); return 1; } sprintf(path, "%s/%s", GDTEST_TOP_DIR, file_exp); if (!gdAssertImageEqualsToFile(path, exp)) { printf("comparing rotated image to %s failed.\n", path); gdImageDestroy(im); gdImageDestroy(exp); return 1; } gdImageDestroy(exp); gdImageDestroy(im); return 0; }
int main() { gdImagePtr im, im2; int error = 0; im = gdImageCreateTrueColor(100, 100); if (im == NULL) { gdTestErrorMsg("gdImageCreateTruecolor failed\n"); error = 1; goto exit; } gdImageColorTransparent(im, -1); gdImageTrueColorToPalette(im, 1, 3); gdImageColorTransparent(im, 9); im2 = gdImageScale(im, 1, 65535); if (im2 == NULL) { error = 1; goto freeim; } else { gdImageDestroy(im2); } freeim: gdImageDestroy(im); exit: return error; }
int main() { gdImagePtr im; char * giffiles[4] = {"bug00005_0.gif", "bug00005_1.gif", "bug00005_2.gif", "bug00005_3.gif"}; int valid[4] = {0, 0, 0, 0}; char *exp[4] = {NULL, NULL, "bug00005_2_exp.png", NULL}; const int files_cnt = 4; FILE *fp; int i = 0; int error = 0; char path[1024]; for (i=0; i < files_cnt; i++) { sprintf(path, "%s/gif/%s", GDTEST_TOP_DIR, giffiles[i]); fp = fopen(path, "rb"); if (!fp) { gdTestErrorMsg("<%s> Input file does not exist!\n", path); return 1; } im = gdImageCreateFromGif(fp); fclose(fp); if (valid[i]) { if (!im) { error = 1; } else { sprintf(path, "%s/gif/%s", GDTEST_TOP_DIR, exp[i]); if (!gdAssertImageEqualsToFile(path, im)) { error = 1; } gdImageDestroy(im); } } else { if (!gdTestAssert(im == NULL)) { error = 1; } } } return error; }
int main() { gdImagePtr im; int black, white; int error = 0; int xs = 300, xe = 350, i; im = gdImageCreateTrueColor(400, 200); if (im == NULL) { gdTestErrorMsg("gdImageCreate failed.\n"); return 1; } white = gdImageColorAllocate(im, 255,255,255); black = gdImageColorAllocate(im, 0,0,0); gdImageFilledRectangle(im, 0, 0, 400,200, white); gdImageRectangle(im, xs, 95, xe, 95, black); for (i = xs; i <= xe; i++) { int c = gdImageGetPixel(im, i, 94); if (c != white) { error |=1; } } for (i = xs; i <= xe; i++) { int c = gdImageGetPixel(im, i, 95); if (c != black) { error |=1; } } for (i = xs; i <= xe; i++) { int c = gdImageGetPixel(im, i, 96); if (c != white) { error |=1; } } gdImageDestroy(im); return error; }
int main() { #if defined(JPEG_LIB_VERSION_MAJOR) && JPEG_LIB_VERSION_MAJOR >= 8 printf("skip, JPEG Major version too high (%i)\n", JPEG_LIB_VERSION_MAJOR); return 0; #else gdImagePtr im; int error = 0; FILE *fp = gdTestFileOpen("jpeg/conv_test.jpeg"); im = gdImageCreateFromJpeg(fp); fclose(fp); if (im == NULL) { gdTestErrorMsg("gdImageCreateFromJpeg failed.\n"); return 1; } if (!gdAssertImageEqualsToFile("jpeg/conv_test_exp.png", im)) error = 1; gdImageDestroy(im); return error; #endif }
int main() { gdImagePtr im; void *data; int size, red; im = gdImageCreate(100, 100); gdImageSetResolution(im, 72, 300); red = gdImageColorAllocate(im, 0xFF, 0x00, 0x00); gdImageFilledRectangle(im, 0, 0, 99, 99, red); data = gdImageJpegPtr(im, &size, 10); gdImageDestroy(im); im = gdImageCreateFromJpegPtr(size, data); gdFree(data); if (!gdTestAssert(gdImageResolutionX(im) == 72) || !gdTestAssert(gdImageResolutionY(im) == 300)) { gdTestErrorMsg("failed image resolution X (%d != 72) or Y (%d != 300)\n", gdImageResolutionX(im), gdImageResolutionY(im)); gdImageDestroy(im); return 1; } gdImageDestroy(im); return 0; }