summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/examples/nnquant.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/examples/nnquant.c')
-rw-r--r--Build/source/libs/gd/libgd-src/examples/nnquant.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/examples/nnquant.c b/Build/source/libs/gd/libgd-src/examples/nnquant.c
new file mode 100644
index 00000000000..33ed523266e
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/examples/nnquant.c
@@ -0,0 +1,64 @@
+/* $Id$ */
+
+#include "gd.h"
+#include <stdio.h>
+#include <stdlib.h>
+
+void save_png(gdImagePtr im, const char *filename)
+{
+ FILE *fp;
+ fp = fopen(filename, "wb");
+ if (!fp) {
+ fprintf(stderr, "Can't save png image %s\n", filename);
+ return;
+ }
+#ifdef HAVE_LIBPNG
+ gdImagePng(im, fp);
+#else
+ printf("No PNG support. Cannot save image.\n");
+#endif
+ fclose(fp);
+}
+
+int main()
+{
+#ifdef HAVE_JPEG
+ gdImagePtr im, im2;
+ FILE *fp;
+ char path[2048];
+
+ fp=fopen("resampledbug.jpeg", "rb");
+ if (!fp) {
+ fprintf(stderr, "Can't load /home/pierre/IM3801.jpg\n");
+ return 1;
+ }
+
+ im = gdImageCreateFromJpeg(fp);
+ fclose(fp);
+ if (!im) {
+ fprintf(stderr, "Can't load TIFF image %s\n", path);
+ return 1;
+ }
+
+ im2 = gdImageNeuQuant(im, 256, 3);
+
+ if (im2) {
+ gdImageSaveAlpha(im2, 1);
+ save_png(im2, "a_nnquant.png");
+ gdImageDestroy(im2);
+ } else {
+ printf("neu quant failed.\n");
+ }
+
+ gdImageTrueColorToPalette(im, 1, 256);
+
+ gdImageSaveAlpha(im, 1);
+ save_png(im, "a_jquant_dither.png");
+
+ gdImageDestroy(im);
+#else
+ printf("JPEG support is required for this example. Please recompile GD with JPEG or change this example to use another format as input.");
+ return 1;
+#endif
+ return 0;
+}