13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <stdio.h>
23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <stdlib.h>
33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <string.h>
43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <time.h>
53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <magick/MagickCore.h>
63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
73ed852eea50f9d4cd633efb8c2b054b8e33c253cristyint main(int argc,char **argv)
83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  ExceptionInfo
103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *exception;
113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  Image
133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *image,
143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *images,
153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *resize_image,
163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *thumbnails;
173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  ImageInfo
193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    *image_info;
203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (argc != 3)
223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    {
233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      (void) fprintf(stdout,"Usage: %s image thumbnail\n",argv[0]);
243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      exit(0);
253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    }
263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  /*
273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    Initialize the image info structure and read an image.
283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  */
293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  MagickCoreGenesis(*argv,MagickTrue);
303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  exception=AcquireExceptionInfo();
313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  image_info=CloneImageInfo((ImageInfo *) NULL);
323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  (void) strcpy(image_info->filename,argv[1]);
333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  images=ReadImage(image_info,exception);
343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (exception->severity != UndefinedException)
353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    CatchException(exception);
363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  if (images == (Image *) NULL)
373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    exit(1);
383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  /*
393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    Convert the image to a thumbnail.
403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  */
413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  thumbnails=NewImageList();
423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  while ((image=RemoveFirstImageFromList(&images)) != (Image *) NULL)
433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  {
443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    resize_image=ResizeImage(image,106,80,LanczosFilter,1.0,exception);
453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    if (resize_image == (Image *) NULL)
463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy      MagickError(exception->severity,exception->reason,exception->description);
473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    (void) AppendImageToList(&thumbnails,resize_image);
483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    DestroyImage(image);
493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  }
503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  /*
513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    Write the image thumbnail.
523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  */
533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  (void) strcpy(thumbnails->filename,argv[2]);
543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  WriteImage(image_info,thumbnails);
553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  /*
563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    Destroy the image thumbnail and exit.
573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  */
583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  thumbnails=DestroyImageList(thumbnails);
593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  image_info=DestroyImageInfo(image_info);
603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  exception=DestroyExceptionInfo(exception);
613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  MagickCoreTerminus();
623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  return(0);
633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
64