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