]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 4 Jul 2012 13:31:29 +0000 (13:31 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 4 Jul 2012 13:31:29 +0000 (13:31 +0000)
MagickCore/channel.c
MagickCore/channel.h
MagickCore/option.c
MagickWand/mogrify.c
MagickWand/operation.c

index 17adb85cb0a1bb41c29ccff4a284ad6439c38b08..04546841d8c253c2a545985232cf4d67b67ca79a 100644 (file)
@@ -439,16 +439,20 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression,
 %
 %  The format of the CombineImages method is:
 %
-%      Image *CombineImages(const Image *image,ExceptionInfo *exception)
+%      Image *CombineImages(const Image *images,const ColorspaceType colorspace,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
-%    o image: the image.
+%    o images: the image sequence.
+%
+%    o colorspace: the image colorspace.
 %
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport Image *CombineImages(const Image *image,ExceptionInfo *exception)
+MagickExport Image *CombineImages(const Image *image,
+  const ColorspaceType colorspace,ExceptionInfo *exception)
 {
 #define CombineImageTag  "Combine/Image"
 
@@ -485,7 +489,7 @@ MagickExport Image *CombineImages(const Image *image,ExceptionInfo *exception)
       return((Image *) NULL);
     }
   if (IsGrayColorspace(image->colorspace) != MagickFalse)
-    (void) SetImageColorspace(combine_image,sRGBColorspace,exception);
+    (void) SetImageColorspace(combine_image,RGBColorspace,exception);
   if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
     combine_image->matte=MagickTrue;
   /*
@@ -574,6 +578,7 @@ MagickExport Image *CombineImages(const Image *image,ExceptionInfo *exception)
   combine_view=DestroyCacheView(combine_view);
   if (status == MagickFalse)
     combine_image=DestroyImage(combine_image);
+  (void) TransformImageColorspace(combine_image,colorspace,exception);
   return(combine_image);
 }
 \f
index 46cb11b885b27c30530f62380548dae25c6c313e..405759dec775fc5d96da20466ab7e7a7dd693549 100644 (file)
@@ -24,7 +24,7 @@ extern "C" {
 
 extern MagickExport Image
   *ChannelFxImage(const Image *,const char *,ExceptionInfo *),
-  *CombineImages(const Image *,ExceptionInfo *),
+  *CombineImages(const Image *,const ColorspaceType,ExceptionInfo *),
   *SeparateImage(const Image *,const ChannelType,ExceptionInfo *),
   *SeparateImages(const Image *,ExceptionInfo *);
 
index f5315f1eac4ca2718ad401c592f6b67f4991259e..09d23f37769c63edd007a473dbde616f0f9bd7ac 100644 (file)
@@ -284,7 +284,7 @@ static const OptionInfo
     { "+colorspace", 0L, ImageInfoOptionFlag | SimpleOperatorFlag, MagickFalse },
     { "-colorspace", 1L, ImageInfoOptionFlag | SimpleOperatorFlag, MagickFalse },
     { "+combine", 0L, DeprecateOptionFlag | FireOptionFlag, MagickTrue },
-    { "-combine", 0L, ListOperatorFlag | FireOptionFlag, MagickFalse },
+    { "-combine", 1L, ListOperatorFlag | FireOptionFlag, MagickFalse },
     { "+comment", 0L, ImageInfoOptionFlag | NeverInterpretArgsFlag, MagickFalse },
     { "-comment", 1L, ImageInfoOptionFlag | NeverInterpretArgsFlag, MagickFalse },
     { "+compose", 0L, ImageInfoOptionFlag, MagickFalse },
index 214dcfdaef45623fb03330284ecb9a13d076393b..8a1d7e4086fc795989f49e9c9312a1891868cd78 100644 (file)
@@ -4146,7 +4146,22 @@ WandExport MagickBooleanType MogrifyImageCommand(ImageInfo *image_info,
             break;
           }
         if (LocaleCompare("combine",option+1) == 0)
-          break;
+          {
+            ssize_t
+              colorspace;
+
+            if (*option == '+')
+              break;
+            i++;
+            if (i == (ssize_t) argc)
+              ThrowMogrifyException(OptionError,"MissingArgument",option);
+            colorspace=ParseCommandOption(MagickColorspaceOptions,MagickFalse,
+              argv[i]);
+            if (colorspace < 0)
+              ThrowMogrifyException(OptionError,"UnrecognizedColorspace",
+                argv[i]);
+            break;
+          }
         if (LocaleCompare("comment",option+1) == 0)
           {
             if (*option == '+')
@@ -7403,11 +7418,16 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
           }
         if (LocaleCompare("combine",option+1) == 0)
           {
+            ColorspaceType
+              colorspace;
+
             Image
               *combine_image;
 
             (void) SyncImagesSettings(mogrify_info,*images,exception);
-            combine_image=CombineImages(*images,exception);
+            colorspace=(ColorspaceType) ParseCommandOption(
+              MagickColorspaceOptions,MagickFalse,argv[i+1]);
+            combine_image=CombineImages(*images,colorspace,exception);
             if (combine_image == (Image *) NULL)
               {
                 status=MagickFalse;
index 9999b951fdae10c823223520270507d77949823a..28aba9bed0c11bd15c14b32b42a9b230281f17d2 100644 (file)
@@ -3676,7 +3676,8 @@ WandExport void CLIListOperatorImages(MagickCLI *cli_wand,
       if (LocaleCompare("combine",option+1) == 0)
         {
           /* FUTURE - this may be replaced by a 'channel' method */
-          new_images=CombineImages(_images,_exception);
+          parse = ParseCommandOption(MagickColorspaceOptions,MagickFalse,arg1);
+          new_images=CombineImages(_images,(ColorspaceType) parse,_exception);
           break;
         }
       if (LocaleCompare("composite",option+1) == 0)