]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/profile.c
(no commit message)
[imagemagick] / MagickCore / profile.c
index 35d8b3f68bf5fd1b7106aa6e83de9fc9094d4c33..44f173b40b8a715e92f3d2b20599317a37937778 100644 (file)
@@ -43,6 +43,7 @@
 #include "MagickCore/attribute.h"
 #include "MagickCore/cache.h"
 #include "MagickCore/color.h"
+#include "MagickCore/colorspace-private.h"
 #include "MagickCore/configure.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
@@ -835,6 +836,9 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
   ThrowBinaryException(severity,tag,context); \
 }
 
+  ExceptionInfo
+    *exception;
+
   MagickBooleanType
     status;
 
@@ -846,6 +850,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(name != (const char *) NULL);
+  exception=(&image->exception);
   if ((datum == (const void *) NULL) || (length == 0))
     {
       char
@@ -928,8 +933,8 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
         }
 #if !defined(MAGICKCORE_LCMS_DELEGATE)
       (void) ThrowMagickException(&image->exception,GetMagickModule(),
-        MissingDelegateWarning,"DelegateLibrarySupportNotBuiltIn","`%s' (LCMS)",
-        image->filename);
+        MissingDelegateWarning,"DelegateLibrarySupportNotBuiltIn",
+        "`%s' (LCMS)",image->filename);
 #else
       {
         cmsHPROFILE
@@ -971,9 +976,6 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
               source_type,
               target_type;
 
-            ExceptionInfo
-              *exception;
-
             int
               intent;
 
@@ -994,7 +996,6 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
               **restrict source_pixels,
               **restrict target_pixels;
 
-            exception=(&image->exception);
             target_profile=(cmsHPROFILE) NULL;
             if (icc_profile != (StringInfo *) NULL)
               {
@@ -1152,7 +1153,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
                  (source_colorspace != LabColorspace) &&
                  (source_colorspace != XYZColorspace) &&
                  (source_colorspace != YCbCrColorspace) &&
-                 (image->colorspace != RGBColorspace))
+                 (IsRGBColorspace(image->colorspace) == MagickFalse))
               ThrowProfileException(ImageError,"ColorspaceColorProfileMismatch",
                 name);
             switch (image->rendering_intent)
@@ -1185,7 +1186,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
                 ThrowProfileException(ResourceLimitError,
                   "MemoryAllocationFailed",image->filename);
               }
-            if (SetImageStorageClass(image,DirectClass) == MagickFalse)
+            if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
               {
                 target_pixels=DestroyPixelThreadSet(target_pixels);
                 source_pixels=DestroyPixelThreadSet(source_pixels);
@@ -1197,7 +1198,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
                 return(MagickFalse);
               }
             if (target_colorspace == CMYKColorspace)
-              (void) SetImageColorspace(image,target_colorspace);
+              (void) SetImageColorspace(image,target_colorspace,exception);
             status=MagickTrue;
             progress=0;
             image_view=AcquireCacheView(image);
@@ -1285,7 +1286,7 @@ MagickExport MagickBooleanType ProfileImage(Image *image,const char *name,
                 }
             }
             image_view=DestroyCacheView(image_view);
-            (void) SetImageColorspace(image,target_colorspace);
+            (void) SetImageColorspace(image,target_colorspace,exception);
             switch (signature)
             {
               case cmsSigRgbData: