summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
new file mode 100644
index 00000000000..89a72be7ffd
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/jpeg/jpeg_im2im.c
@@ -0,0 +1,70 @@
+#include "gd.h"
+#include "gdtest.h"
+
+int main()
+{
+ gdImagePtr src, dst;
+ int r, g, b;
+ void *p;
+ int size = 0;
+ int status = 0;
+#if 0
+ CuTestImageResult result = {0, 0};
+#endif
+
+ src = gdImageCreateTrueColor(100, 100);
+ if (src == NULL) {
+ printf("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_JPEG(name) do { \
+ FILE *fp; \
+ \
+ fp = fopen("jpeg_im2im_" #name ".jpeg", "wb"); \
+ if (fp) { \
+ gdImageJpeg(name, fp, 100); \
+ fclose(fp); \
+ } \
+ } while (0)
+
+ OUTPUT_JPEG(src);
+ p = gdImageJpegPtr(src, &size, 100);
+ if (p == NULL) {
+ status = 1;
+ printf("p is null\n");
+ goto door0;
+ }
+ if (size <= 0) {
+ status = 1;
+ printf("size is non-positive\n");
+ goto door1;
+ }
+
+ dst = gdImageCreateFromJpegPtr(size, p);
+ if (dst == NULL) {
+ status = 1;
+ printf("could not create dst\n");
+ goto door1;
+ }
+ OUTPUT_JPEG(dst);
+#if 0
+ gdTestImageDiff(src, dst, NULL, &result);
+ if (result.pixels_changed > 0) {
+ status = 1;
+ printf("pixels changed: %d\n", result.pixels_changed);
+ }
+#endif
+ gdImageDestroy(dst);
+door1:
+ gdFree(p);
+door0:
+ gdImageDestroy(src);
+ return status;
+}