]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 28 Aug 2011 16:32:09 +0000 (16:32 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 28 Aug 2011 16:32:09 +0000 (16:32 +0000)
22 files changed:
Magick++/lib/Image.cpp
MagickCore/blob.c
MagickCore/constitute.c
MagickCore/constitute.h
MagickCore/delegate.c
MagickCore/display.c
MagickCore/effect.c
MagickCore/resize.c
MagickCore/stream.c
MagickWand/display.c
MagickWand/magick-image.c
PerlMagick/Magick.xs
coders/clip.c
coders/histogram.c
coders/html.c
coders/matte.c
coders/mpeg.c
coders/msl.c
coders/preview.c
coders/thumbnail.c
coders/vid.c
tests/validate.c

index 131f99aff248153292f3a08a950a8e9d5ee76ee7..d1d6246908c3c57e9d3b777f7842117eb1feb165 100644 (file)
@@ -2230,10 +2230,13 @@ void Magick::Image::wave ( const double amplitude_, const double wavelength_ )
 // Write image to file
 void Magick::Image::write( const std::string &imageSpec_ )
 {
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
   fileName( imageSpec_ );
-  WriteImage( imageInfo(), image() );
-  throwImageException();
+  WriteImage( imageInfo(), image(), &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 // Write image to in-memory BLOB
index 683dc155ceaad73bbb940cba2311f620f74600d4..1e0b5af196f1595c87a3853f91228dc4f4cdaf97 100644 (file)
@@ -1504,10 +1504,8 @@ MagickExport unsigned char *ImageToBlob(const ImageInfo *image_info,
           (void) CloseBlob(image);
           image->blob->exempt=MagickTrue;
           *image->filename='\0';
-          status=WriteImage(blob_info,image);
-          if ((status == MagickFalse) || (image->blob->length == 0))
-            InheritException(exception,&image->exception);
-          else
+          status=WriteImage(blob_info,image,exception);
+          if ((status != MagickFalse) && (image->blob->length != 0))
             {
               *length=image->blob->length;
               blob=DetachBlob(image->blob);
@@ -1540,11 +1538,9 @@ MagickExport unsigned char *ImageToBlob(const ImageInfo *image_info,
             {
               (void) FormatLocaleString(image->filename,MaxTextExtent,"%s:%s",
                 image->magick,unique);
-              status=WriteImage(blob_info,image);
+              status=WriteImage(blob_info,image,exception);
               (void) fclose(blob_info->file);
-              if (status == MagickFalse)
-                InheritException(exception,&image->exception);
-              else
+              if (status != MagickFalse)
                 blob=FileToBlob(image->filename,~0UL,length,exception);
             }
           (void) RelinquishUniqueFileResource(unique);
@@ -1917,7 +1913,7 @@ MagickExport MagickBooleanType InjectImageBlob(const ImageInfo *image_info,
   byte_image->blob=CloneBlobInfo((BlobInfo *) NULL);
   write_info=CloneImageInfo(image_info);
   SetImageInfoFile(write_info,unique_file);
-  status=WriteImage(write_info,byte_image);
+  status=WriteImage(write_info,byte_image,exception);
   write_info=DestroyImageInfo(write_info);
   byte_image=DestroyImage(byte_image);
   (void) fclose(unique_file);
index acfba2688e653bdbe6ee2ec223b7467df4f1f9eb..5fd67abe1be22b164e57176af69292349d72a512 100644 (file)
@@ -970,7 +970,8 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info,
 %
 %  The format of the WriteImage method is:
 %
-%      MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image)
+%      MagickBooleanType WriteImage(const ImageInfo *image_info,Image *image,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -978,9 +979,11 @@ MagickExport Image *ReadInlineImage(const ImageInfo *image_info,
 %
 %    o image: the image.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
-  Image *image)
+  Image *image,ExceptionInfo *exception)
 {
   char
     filename[MaxTextExtent];
@@ -1023,6 +1026,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
       image_info->filename);
   assert(image != (Image *) NULL);
   assert(image->signature == MagickSignature);
+  assert(exception != (ExceptionInfo *) NULL);
   sans_exception=AcquireExceptionInfo();
   write_info=CloneImageInfo(image_info);
   (void) CopyMagickString(write_info->filename,image->filename,MaxTextExtent);
@@ -1033,7 +1037,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
     {
       if (image->clip_mask == (Image *) NULL)
         {
-          (void) ThrowMagickException(&image->exception,GetMagickModule(),
+          (void) ThrowMagickException(exception,GetMagickModule(),
             OptionError,"NoClipPathDefined","`%s'",image->filename);
           return(MagickFalse);
         }
@@ -1076,8 +1080,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
       (GetNextImageInList(image) == (Image *) NULL) &&
       (IsTaintImage(image) == MagickFalse))
     {
-      delegate_info=GetDelegateInfo(image->magick,write_info->magick,
-        &image->exception);
+      delegate_info=GetDelegateInfo(image->magick,write_info->magick,exception);
       if ((delegate_info != (const DelegateInfo *) NULL) &&
           (GetDelegateMode(delegate_info) == 0) &&
           (IsPathAccessible(image->magick_filename) != MagickFalse))
@@ -1088,7 +1091,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
           (void) CopyMagickString(image->filename,image->magick_filename,
             MaxTextExtent);
           status=InvokeDelegate(write_info,image,image->magick,
-            write_info->magick,&image->exception);
+            write_info->magick,exception);
           write_info=DestroyImageInfo(write_info);
           (void) CopyMagickString(image->filename,filename,MaxTextExtent);
           return(status);
@@ -1103,7 +1106,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
         filename[MaxTextExtent];
 
       (void) CopyMagickString(filename,image->filename,MaxTextExtent);
-      status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+      status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
       (void) CopyMagickString(image->filename,filename,MaxTextExtent);
       if (status != MagickFalse)
         {
@@ -1138,8 +1141,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
     }
   else
     {
-      delegate_info=GetDelegateInfo((char *) NULL,write_info->magick,
-        &image->exception);
+      delegate_info=GetDelegateInfo((char *) NULL,write_info->magick,exception);
       if (delegate_info != (DelegateInfo *) NULL)
         {
           /*
@@ -1149,7 +1151,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
           if (GetDelegateThreadSupport(delegate_info) == MagickFalse)
             LockSemaphoreInfo(constitute_semaphore);
           status=InvokeDelegate(write_info,image,(char *) NULL,
-            write_info->magick,&image->exception);
+            write_info->magick,exception);
           if (GetDelegateThreadSupport(delegate_info) == MagickFalse)
             UnlockSemaphoreInfo(constitute_semaphore);
           (void) CopyMagickString(image->filename,filename,MaxTextExtent);
@@ -1164,7 +1166,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
             {
               (void) CopyMagickString(write_info->magick,image->magick,
                 MaxTextExtent);
-              magick_info=GetMagickInfo(write_info->magick,&image->exception);
+              magick_info=GetMagickInfo(write_info->magick,exception);
             }
           if ((magick_info == (const MagickInfo *) NULL) ||
               (GetImageEncoder(magick_info) == (EncodeImageHandler *) NULL))
@@ -1174,14 +1176,14 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
 
               GetPathComponent(image->filename,ExtensionPath,extension);
               if (*extension != '\0')
-                magick_info=GetMagickInfo(extension,&image->exception);
+                magick_info=GetMagickInfo(extension,exception);
               else
-                magick_info=GetMagickInfo(image->magick,&image->exception);
+                magick_info=GetMagickInfo(image->magick,exception);
               (void) CopyMagickString(image->filename,filename,MaxTextExtent);
             }
           if ((magick_info == (const MagickInfo *) NULL) ||
               (GetImageEncoder(magick_info) == (EncodeImageHandler *) NULL))
-            (void) ThrowMagickException(&image->exception,GetMagickModule(),
+            (void) ThrowMagickException(exception,GetMagickModule(),
               MissingDelegateError,"NoEncodeDelegateForThisImageFormat","`%s'",
               image->filename);
           else
@@ -1199,16 +1201,16 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
         }
     }
   if (GetBlobError(image) != MagickFalse)
-    ThrowFileException(&image->exception,FileOpenError,
+    ThrowFileException(exception,FileOpenError,
       "AnErrorHasOccurredWritingToFile",image->filename);
   if (temporary == MagickTrue)
     {
       /*
         Copy temporary image file to permanent.
       */
-      status=OpenBlob(write_info,image,ReadBinaryBlobMode,&image->exception);
+      status=OpenBlob(write_info,image,ReadBinaryBlobMode,exception);
       if (status != MagickFalse)
-        status=ImageToFile(image,write_info->filename,&image->exception);
+        status=ImageToFile(image,write_info->filename,exception);
       (void) CloseBlob(image);
       (void) RelinquishUniqueFileResource(image->filename);
       (void) CopyMagickString(image->filename,write_info->filename,
@@ -1216,7 +1218,7 @@ MagickExport MagickBooleanType WriteImage(const ImageInfo *image_info,
     }
   if ((LocaleCompare(write_info->magick,"info") != 0) &&
       (write_info->verbose != MagickFalse))
-    (void) IdentifyImage(image,stdout,MagickFalse,&image->exception);
+    (void) IdentifyImage(image,stdout,MagickFalse,exception);
   write_info=DestroyImageInfo(write_info);
   return(status);
 }
@@ -1338,7 +1340,7 @@ MagickExport MagickBooleanType WriteImages(const ImageInfo *image_info,
     if (number_images != 1)
       progress_monitor=SetImageProgressMonitor(p,(MagickProgressMonitor) NULL,
         p->client_data);
-    status&=WriteImage(write_info,p);
+    status&=WriteImage(write_info,p,exception);
     GetImageException(p,exception);
     if (number_images != 1)
       (void) SetImageProgressMonitor(p,progress_monitor,p->client_data);
index 63268dd22319982054b8db9393273084b9b42bdc..fa6014f66beffb8af6665b5484c154261a2b5f80 100644 (file)
@@ -45,7 +45,7 @@ extern MagickExport Image
 
 extern MagickExport MagickBooleanType
   ConstituteComponentGenesis(void),
-  WriteImage(const ImageInfo *,Image *),
+  WriteImage(const ImageInfo *,Image *,ExceptionInfo *),
   WriteImages(const ImageInfo *,Image *,const char *,ExceptionInfo *);
 
 extern MagickExport void
index a0884f21bc1632b5659f0ca86b1651a8922fe25c..b9890d490446a5378f936b707080553c9b81789b 100644 (file)
@@ -965,7 +965,7 @@ MagickExport MagickBooleanType InvokeDelegate(ImageInfo *image_info,
       {
         (void) FormatLocaleString(p->filename,MaxTextExtent,"%s:%s",
           delegate_info->decode,clone_info->filename);
-        status=WriteImage(clone_info,p);
+        status=WriteImage(clone_info,p,exception);
         if (status == MagickFalse)
           {
             (void) RelinquishUniqueFileResource(image_info->unique);
index e7511c13fe9059c5250d26febf2f66821e7b83e5..5beed0f8733c4e597824cb8092d759dffdfc7a60 100644 (file)
@@ -5718,7 +5718,7 @@ static MagickBooleanType XDrawEditImage(Display *display,
               (void) AcquireUniqueFileResource(filename);
               (void) FormatLocaleString(stipple_image->filename,MaxTextExtent,
                 "xbm:%s",filename);
-              (void) WriteImage(image_info,stipple_image);
+              (void) WriteImage(image_info,stipple_image,&(*image)->exception);
               stipple_image=DestroyImage(stipple_image);
               image_info=DestroyImageInfo(image_info);
               status=XReadBitmapFile(display,root_window,filename,&width,
@@ -8948,7 +8948,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"launch:%s",
         filename);
-      status=WriteImage(image_info,*image);
+      status=WriteImage(image_info,*image,&(*image)->exception);
       if (status == MagickFalse)
         XNoticeWidget(display,windows,"Unable to launch image editor",
           (char *) NULL);
@@ -9027,7 +9027,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"preview:%s",
         filename);
-      status=WriteImage(image_info,*image);
+      status=WriteImage(image_info,*image,&(*image)->exception);
       (void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
       preview_image=ReadImage(image_info,&(*image)->exception);
       (void) RelinquishUniqueFileResource(filename);
@@ -9035,7 +9035,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
         break;
       (void) FormatLocaleString(preview_image->filename,MaxTextExtent,"show:%s",
         filename);
-      status=WriteImage(image_info,preview_image);
+      status=WriteImage(image_info,preview_image,&(*image)->exception);
       preview_image=DestroyImage(preview_image);
       if (status == MagickFalse)
         XNoticeWidget(display,windows,"Unable to show image preview",
@@ -9060,7 +9060,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"histogram:%s",
         filename);
-      status=WriteImage(image_info,*image);
+      status=WriteImage(image_info,*image,&(*image)->exception);
       (void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
       histogram_image=ReadImage(image_info,&(*image)->exception);
       (void) RelinquishUniqueFileResource(filename);
@@ -9068,7 +9068,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
         break;
       (void) FormatLocaleString(histogram_image->filename,MaxTextExtent,
         "show:%s",filename);
-      status=WriteImage(image_info,histogram_image);
+      status=WriteImage(image_info,histogram_image,&(*image)->exception);
       histogram_image=DestroyImage(histogram_image);
       if (status == MagickFalse)
         XNoticeWidget(display,windows,"Unable to show histogram",
@@ -9099,7 +9099,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) AcquireUniqueFilename(filename);
       (void) FormatLocaleString((*image)->filename,MaxTextExtent,"matte:%s",
         filename);
-      status=WriteImage(image_info,*image);
+      status=WriteImage(image_info,*image,&(*image)->exception);
       (void) CopyMagickString(image_info->filename,filename,MaxTextExtent);
       matte_image=ReadImage(image_info,&(*image)->exception);
       (void) RelinquishUniqueFileResource(filename);
@@ -9107,7 +9107,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
         break;
       (void) FormatLocaleString(matte_image->filename,MaxTextExtent,"show:%s",
         filename);
-      status=WriteImage(image_info,matte_image);
+      status=WriteImage(image_info,matte_image,&(*image)->exception);
       matte_image=DestroyImage(matte_image);
       if (status == MagickFalse)
         XNoticeWidget(display,windows,"Unable to show matte",
@@ -10919,7 +10919,7 @@ static MagickBooleanType XPrintImage(Display *display,
   (void) AcquireUniqueFilename(filename);
   (void) FormatLocaleString(print_image->filename,MaxTextExtent,"print:%s",
     filename);
-  status=WriteImage(image_info,print_image);
+  status=WriteImage(image_info,print_image,&image->exception);
   (void) RelinquishUniqueFileResource(filename);
   print_image=DestroyImage(print_image);
   image_info=DestroyImageInfo(image_info);
@@ -12521,7 +12521,7 @@ static MagickBooleanType XSaveImage(Display *display,
     Write image.
   */
   (void) CopyMagickString(save_image->filename,filename,MaxTextExtent);
-  status=WriteImage(image_info,save_image);
+  status=WriteImage(image_info,save_image,&image->exception);
   if (status != MagickFalse)
     image->taint=MagickFalse;
   save_image=DestroyImage(save_image);
index 64c9fe0c22462cde2bb5912948c7b729e025b655..1362e056daa5ddc071aa0dee6b25bdb4130f2385 100644 (file)
@@ -2727,7 +2727,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
           file=close(file)-1;
         (void) FormatLocaleString(preview_image->filename,MaxTextExtent,
           "jpeg:%s",filename);
-        status=WriteImage(preview_info,preview_image);
+        status=WriteImage(preview_info,preview_image,exception);
         if (status != MagickFalse)
           {
             Image
index 314a762b472d7c6ccfc8827a804c5e80954d27b3..da2df3851826a58de0058dc66c104829307f3840 100644 (file)
@@ -3138,7 +3138,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
       */
       for (x=0; x < (ssize_t) scale_image->columns; x++)
       {
-        for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+        for (i=0; i < (ssize_t) GetPixelChannels(scale_image); i++)
         {
           traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
           if (traits == UndefinedPixelTrait)
@@ -3157,7 +3157,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
             GetPixelChannelMapChannel(image,AlphaPixelChannel)];
           gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
           q[channel]=ClampToQuantum(gamma*scale_scanline[
-            GetPixelChannels(scale_image)+channel]);
+            x*GetPixelChannels(scale_image)+channel]);
         }
         q+=GetPixelChannels(scale_image);
       }
index c24872bb0dac6b574464de176a50ed48265404ab..d29bc4209b9d8b6eaa660eff79995afc120fd570 100644 (file)
@@ -2695,7 +2695,7 @@ MagickExport MagickBooleanType WriteStream(const ImageInfo *image_info,
   assert(image->signature == MagickSignature);
   write_info=CloneImageInfo(image_info);
   write_info->stream=stream;
-  status=WriteImage(write_info,image);
+  status=WriteImage(write_info,image,&image->exception);
   write_info=DestroyImageInfo(write_info);
   return(status);
 }
index 41f8fd470d8396d604e2dee452f107c962cbbf51..7c45a47a67d1bd71d9326e99512f7c6e475d0308 100644 (file)
@@ -602,7 +602,8 @@ WandExport MagickBooleanType DisplayImageCommand(ImageInfo *image_info,
               (void) CopyMagickString(display_image->filename,
                 resource_info.write_filename,MaxTextExtent);
               (void) SetImageInfo(image_info,1,&display_image->exception);
-              status&=WriteImage(image_info,display_image);
+              status&=WriteImage(image_info,display_image,
+                &display_image->exception);
               GetImageException(display_image,exception);
             }
           /*
index 48a9b8e3f44b2a3e2fc259282eab4e08d28d6b4b..57fb05306ef95a4ff2ea8e0c89901d68d3021538 100644 (file)
@@ -11877,9 +11877,7 @@ WandExport MagickBooleanType MagickWriteImage(MagickWand *wand,
     return(MagickFalse);
   write_info=CloneImageInfo(wand->image_info);
   write_info->adjoin=MagickTrue;
-  status=WriteImage(write_info,image);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&image->exception);
+  status=WriteImage(write_info,image,&image->exception);
   image=DestroyImage(image);
   write_info=DestroyImageInfo(write_info);
   return(status);
@@ -11933,10 +11931,8 @@ WandExport MagickBooleanType MagickWriteImageFile(MagickWand *wand,FILE *file)
   write_info=CloneImageInfo(wand->image_info);
   SetImageInfoFile(write_info,file);
   write_info->adjoin=MagickTrue;
-  status=WriteImage(write_info,image);
+  status=WriteImage(write_info,image,&image->exception);
   write_info=DestroyImageInfo(write_info);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&image->exception);
   image=DestroyImage(image);
   return(status);
 }
index 833a247b4b48ed599713e71881a7ffd80ac72e65..addb658b8e236c7b4a6916a709aa9ce7f606ff7b 100644 (file)
@@ -9747,7 +9747,7 @@ Mogrify(ref,...)
               (argument_list[2].integer_reference != 0))
             (void) SetImageArtifact(image,"identify:unique","true");
           (void) IdentifyImage(image,argument_list[0].file_reference,
-            MagickTrue);
+            MagickTrue,exception);
           break;
         }
         case 91:  /* SepiaTone */
@@ -14063,10 +14063,7 @@ Write(ref,...)
       GetImageListLength(image),&image->exception);
     for (next=image; next; next=next->next)
     {
-      (void) WriteImage(package_info->image_info,next);
-      if (next->exception.severity >= ErrorException)
-        InheritException(exception,&next->exception);
-      GetImageException(next,exception);
+      (void) WriteImage(package_info->image_info,next,exception);
       number_images++;
       if (package_info->image_info->adjoin)
         break;
index 93a87806b0d5d8854887e404aa3d3314eb9827c2..294bb340f4ce4d563e97e0211f50a6c16e7950f8 100644 (file)
@@ -172,7 +172,7 @@ static MagickBooleanType WriteCLIPImage(const ImageInfo *image_info,
   if (LocaleCompare(write_info->magick,"CLIP") == 0)
     (void) FormatLocaleString(clip_image->filename,MaxTextExtent,"miff:%s",
       write_info->filename);
-  status=WriteImage(write_info,clip_image);
+  status=WriteImage(write_info,clip_image,&image->exception);
   clip_image=DestroyImage(clip_image);
   write_info=DestroyImageInfo(write_info);
   return(status);
index 619d80e7a4a94c876f31ceb8c07a14934fc70c3f..4d2763592ba2097364c2adda5a8b0ffe8cc993c5 100644 (file)
@@ -384,7 +384,7 @@ static MagickBooleanType WriteHISTOGRAMImage(const ImageInfo *image_info,
   if (LocaleCompare(write_info->magick,"HISTOGRAM") == 0)
     (void) FormatLocaleString(histogram_image->filename,MaxTextExtent,
       "miff:%s",write_info->filename);
-  status=WriteImage(write_info,histogram_image);
+  status=WriteImage(write_info,histogram_image,&image->exception);
   histogram_image=DestroyImage(histogram_image);
   write_info=DestroyImageInfo(write_info);
   return(status);
index 434cc39bf02a17aa1a13dc932e439efcdb4e8911..71114675c0e738cbb31c1a8158a00efe0d524406 100644 (file)
@@ -384,7 +384,7 @@ static MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,
       next=GetNextImageInList(image);
       image->next=NewImageList();
       (void) CopyMagickString(image->magick,"PNG",MaxTextExtent);
-      (void) WriteImage(write_info,image);
+      (void) WriteImage(write_info,image,&image->exception);
       image->next=next;
       /*
         Determine image map filename.
index 43da96369038f1f68a18e257b481e5dda69b4e88..2df9a7e1472d636579208347df5efc7bcd92447e 100644 (file)
@@ -211,7 +211,7 @@ static MagickBooleanType WriteMATTEImage(const ImageInfo *image_info,
   }
   (void) FormatLocaleString(matte_image->filename,MaxTextExtent,
     "MIFF:%s",image->filename);
-  status=WriteImage(image_info,matte_image);
+  status=WriteImage(image_info,matte_image,exception);
   matte_image=DestroyImage(matte_image);
   return(status);
 }
index c42bd2ece2c0d71083d2f2ade167a150f507828e..c733d262f881a7df4708fdc9a3317ce7c22bf3d9 100644 (file)
@@ -547,7 +547,7 @@ static MagickBooleanType WriteMPEGImage(const ImageInfo *image_info,
           frame=CloneImage(p,0,0,MagickTrue,&p->exception);
           if (frame == (Image *) NULL)
             break;
-          status=WriteImage(write_info,frame);
+          status=WriteImage(write_info,frame,&image->exception);
           frame=DestroyImage(frame);
           break;
         }
index 3e532587a1cc293d8aa81f2756851f050dcab10d..0a970d1396d6507e327008807e7ffba0f90298e4 100644 (file)
@@ -7199,7 +7199,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
 
           /* process */
           {
-            (void) WriteImage(msl_info->image_info[n], msl_info->image[n]);
+            (void) WriteImage(msl_info->image_info[n], msl_info->image[n],
+              &msl_info->image[n]->exception);
             break;
           }
         }
index ce36a442bccde76ef879d57db5f5c7e1b2772b74..8c93bf5acccbcf26769a55acb7fcae83c4538f1a 100644 (file)
@@ -191,7 +191,7 @@ static MagickBooleanType WritePreviewImage(const ImageInfo *image_info,
   if (LocaleCompare(write_info->magick,"PREVIEW") == 0)
     (void) FormatLocaleString(preview_image->filename,MaxTextExtent,
       "miff:%s",image_info->filename);
-  status=WriteImage(write_info,preview_image);
+  status=WriteImage(write_info,preview_image,&image->exception);
   preview_image=DestroyImage(preview_image);
   write_info=DestroyImageInfo(write_info);
   return(status);
index 7139de9873647d236d1112f3a15c0c3267faaa3b..e970f6b66e71972d531593ea988d246eee216066 100644 (file)
@@ -211,7 +211,7 @@ static MagickBooleanType WriteTHUMBNAILImage(const ImageInfo *image_info,
   if (LocaleCompare(write_info->magick,"THUMBNAIL") == 0)
     (void) FormatLocaleString(thumbnail_image->filename,MaxTextExtent,
       "miff:%s",write_info->filename);
-  status=WriteImage(write_info,thumbnail_image);
+  status=WriteImage(write_info,thumbnail_image,&image->exception);
   thumbnail_image=DestroyImage(thumbnail_image);
   write_info=DestroyImageInfo(write_info);
   return(status);
index 4ff9c7c82ec9023d2bf9b651d64cbec8f05f10f6..b3ebb2d19686b9589c1439373d2abef9daac4fe9 100644 (file)
@@ -335,7 +335,7 @@ static MagickBooleanType WriteVIDImage(const ImageInfo *image_info,Image *image)
   if (LocaleCompare(write_info->magick,"VID") == 0)
     (void) FormatLocaleString(montage_image->filename,MaxTextExtent,
       "miff:%s",write_info->filename);
-  status=WriteImage(write_info,montage_image);
+  status=WriteImage(write_info,montage_image,&image->exception);
   montage_image=DestroyImage(montage_image);
   write_info=DestroyImageInfo(write_info);
   return(status);
index 4783cc7b5fb38837a1cbd836315e324a704d8267..684e9f5f0282deff5e17eddae2fb1898b85dcfb7 100644 (file)
@@ -544,8 +544,7 @@ static size_t ValidateImageFormatsInMemory(ImageInfo *image_info,
           continue;
         }
       reference_image->compression=reference_formats[i].compression;
-      status=WriteImage(image_info,reference_image);
-      InheritException(exception,&reference_image->exception);
+      status=WriteImage(image_info,reference_image,exception);
       reference_image=DestroyImage(reference_image);
       if (status == MagickFalse)
         {
@@ -763,8 +762,7 @@ static size_t ValidateImageFormatsOnDisk(ImageInfo *image_info,
           continue;
         }
       reference_image->compression=reference_formats[i].compression;
-      status=WriteImage(image_info,reference_image);
-      InheritException(exception,&reference_image->exception);
+      status=WriteImage(image_info,reference_image,exception);
       reference_image=DestroyImage(reference_image);
       if (status == MagickFalse)
         {
@@ -793,8 +791,7 @@ static size_t ValidateImageFormatsOnDisk(ImageInfo *image_info,
         reference_formats[i].magick,output_filename);
       reference_image->depth=reference_types[j].depth;
       reference_image->compression=reference_formats[i].compression;
-      status=WriteImage(image_info,reference_image);
-      InheritException(exception,&reference_image->exception);
+      status=WriteImage(image_info,reference_image,exception);
       if (status == MagickFalse)
         {
           (void) FormatLocaleFile(stdout,"... fail @ %s/%s/%lu.\n",
@@ -1442,8 +1439,7 @@ int main(int argc,char **argv)
       (void) AcquireUniqueFilename(output_filename);
       (void) CopyMagickString(reference_image->filename,reference_filename,
         MaxTextExtent);
-      status=WriteImage(image_info,reference_image);
-      InheritException(exception,&reference_image->exception);
+      status=WriteImage(image_info,reference_image,exception);
       reference_image=DestroyImage(reference_image);
       if (status == MagickFalse)
         fail++;