| Viewing file:  nnquant.c (1.15 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/* $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;
 }
 
 |