]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Fri, 8 Jul 2011 00:11:42 +0000 (00:11 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Fri, 8 Jul 2011 00:11:42 +0000 (00:11 +0000)
15 files changed:
Magick++/lib/Image.cpp
Magick++/lib/Magick++/Include.h
MagickCore/distort.c
MagickCore/image.c
MagickCore/image.h
MagickCore/magick-config.h
MagickCore/methods.h
MagickCore/version.h
MagickWand/magick-image.c
MagickWand/magick-image.h
MagickWand/mogrify.c
PerlMagick/Magick.xs
coders/png.c
coders/ps3.c
coders/xtrn.c

index 81d9a7147f2fd5696e9813dd10bd2c250f49dd66..f160085bde8683f5f08ad90830133ef46972e4a4 100644 (file)
@@ -520,7 +520,9 @@ void Magick::Image::border( const Geometry &geometry_ )
 void Magick::Image::channel ( const ChannelType channel_ )
 {
   modifyImage();
-  SeparateImageChannel ( image(), channel_ );
+  PushPixelComponentMap( image(), channel_ );
+  SeparateImage ( image() );
+  PopPixelComponentMap( image() );
   throwImageException();
 }
 
index 9cc1e69f2640516d888d90bb0d5ba94fb73c4c5a..cf2c75258f9d7aea10324681496a16ee1e614d61 100644 (file)
@@ -843,7 +843,7 @@ namespace Magick
   using MagickCore::SampleImage;
   using MagickCore::ScaleImage;
   using MagickCore::SegmentImage;
-  using MagickCore::SeparateImageChannel;
+  using MagickCore::SeparateImage;
   using MagickCore::SetClientName;
   using MagickCore::SetGeometry;
   using MagickCore::SetImageBackgroundColor;
index 71f6c1b413c7f17a621ba7f46922db0de658cba1..890333a3a526d8d5abd6e07a25300ec3f2f45fea 100644 (file)
@@ -1469,12 +1469,14 @@ MagickExport Image *DistortResizeImage(const Image *image,
         *resize_alpha;
 
       /* distort alpha channel separately */
-      (void) SeparateImageChannel(tmp_image,TrueAlphaChannel);
+      PushPixelComponentMap(tmp_image,AlphaChannel);
+      (void) SeparateImage(tmp_image);
+      PopPixelComponentMap(tmp_image);
       (void) SetImageAlphaChannel(tmp_image,OpaqueAlphaChannel);
       resize_alpha=DistortImage(tmp_image,AffineDistortion,12,distort_args,
-            MagickTrue,exception),
+        MagickTrue,exception),
       tmp_image=DestroyImage(tmp_image);
-      if ( resize_alpha == (Image *) NULL )
+      if (resize_alpha == (Image *) NULL)
         return((Image *) NULL);
 
       /* distort the actual image containing alpha + VP alpha */
@@ -1482,16 +1484,15 @@ MagickExport Image *DistortResizeImage(const Image *image,
       if ( tmp_image == (Image *) NULL )
         return((Image *) NULL);
       (void) SetImageVirtualPixelMethod(tmp_image,
-                   TransparentVirtualPixelMethod);
+        TransparentVirtualPixelMethod);
       resize_image=DistortImage(tmp_image,AffineDistortion,12,distort_args,
-            MagickTrue,exception),
+        MagickTrue,exception),
       tmp_image=DestroyImage(tmp_image);
       if ( resize_image == (Image *) NULL)
         {
           resize_alpha=DestroyImage(resize_alpha);
           return((Image *) NULL);
         }
-
       /* replace resize images alpha with the separally distorted alpha */
       (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel);
       (void) SetImageAlphaChannel(resize_alpha,DeactivateAlphaChannel);
index 81085be07133db83616efb6fab17ca648be09c2d..97a8cc78064b356697b6e802ab3cd0f2ca4ceec1 100644 (file)
@@ -990,8 +990,7 @@ MagickExport ImageInfo *CloneImageInfo(const ImageInfo *image_info)
 %
 %  The format of the CombineImages method is:
 %
-%      Image *CombineImages(const Image *image,const ChannelType channel,
-%        ExceptionInfo *exception)
+%      Image *CombineImages(const Image *image,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1000,8 +999,7 @@ MagickExport ImageInfo *CloneImageInfo(const ImageInfo *image_info)
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
-  ExceptionInfo *exception)
+MagickExport Image *CombineImages(const Image *image,ExceptionInfo *exception)
 {
 #define CombineImageTag  "Combine/Image"
 
@@ -1097,7 +1095,7 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
         {
           SetPixelRed(image,GetPixelIntensity(image,p),q);
           p+=GetPixelComponents(image);
-          q++;
+          q+=GetPixelComponents(combine_image);
         }
         image_view=DestroyCacheView(image_view);
         next=GetNextImageInList(next);
@@ -1114,7 +1112,7 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
         {
           SetPixelGreen(image,GetPixelIntensity(image,p),q);
           p+=GetPixelComponents(image);
-          q++;
+          q+=GetPixelComponents(combine_image);
         }
         image_view=DestroyCacheView(image_view);
         next=GetNextImageInList(next);
@@ -1131,7 +1129,7 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
         {
           SetPixelBlue(image,GetPixelIntensity(image,p),q);
           p+=GetPixelComponents(image);
-          q++;
+          q+=GetPixelComponents(combine_image);
         }
         image_view=DestroyCacheView(image_view);
         next=GetNextImageInList(next);
@@ -1148,7 +1146,7 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
         {
           SetPixelBlack(image,GetPixelIntensity(image,p),q);
           p+=GetPixelComponents(image);
-          q++;
+          q+=GetPixelComponents(combine_image);
         }
         image_view=DestroyCacheView(image_view);
         next=GetNextImageInList(next);
@@ -1165,7 +1163,7 @@ MagickExport Image *CombineImages(const Image *image,const ChannelType channel,
         {
           SetPixelAlpha(image,GetPixelIntensity(image,p),q);
           p+=GetPixelComponents(image);
-          q++;
+          q+=GetPixelComponents(combine_image);
         }
         image_view=DestroyCacheView(image_view);
         next=GetNextImageInList(next);
@@ -2280,26 +2278,20 @@ MagickExport MagickBooleanType ResetImagePage(Image *image,const char *page)
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  SeparateImageChannel() separates a channel from the image and returns it as
+%  SeparateImage() separates a channel from the image and returns it as
 %  a grayscale image.  A channel is a particular color component of each pixel
 %  in the image.
 %
-%  The format of the SeparateImageChannel method is:
+%  The format of the SeparateImage method is:
 %
-%      MagickBooleanType SeparateImageChannel(Image *image,
-%        const ChannelType channel)
+%      MagickBooleanType SeparateImage(Image *image)
 %
 %  A description of each parameter follows:
 %
 %    o image: the image.
 %
-%    o channel: Identify which channel to extract: RedChannel, GreenChannel,
-%      BlueChannel, AlphaChannel, CyanChannel, MagentaChannel,
-%      YellowChannel, or BlackChannel.
-%
 */
-MagickExport MagickBooleanType SeparateImageChannel(Image *image,
-  const ChannelType channel)
+MagickExport MagickBooleanType SeparateImage(Image *image)
 {
 #define SeparateImageTag  "Separate/Image"
 
@@ -2328,8 +2320,6 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image,
     Separate image channels.
   */
   status=MagickTrue;
-  if (channel == GrayChannels)
-    image->matte=MagickTrue;
   progress=0;
   exception=(&image->exception);
   image_view=AcquireCacheView(image);
@@ -2352,85 +2342,38 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image,
         status=MagickFalse;
         continue;
       }
-    switch (channel)
+    for (x=0; x < (ssize_t) image->columns; x++)
     {
-      case RedChannel:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
+      if ((GetPixelRedTraits(image) & ActivePixelTrait) != 0)
         {
           SetPixelGreen(image,GetPixelRed(image,q),q);
           SetPixelBlue(image,GetPixelRed(image,q),q);
-          q+=GetPixelComponents(image);
         }
-        break;
-      }
-      case GreenChannel:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
+      if ((GetPixelGreenTraits(image) & ActivePixelTrait) != 0)
         {
           SetPixelRed(image,GetPixelGreen(image,q),q);
           SetPixelBlue(image,GetPixelGreen(image,q),q);
-          q+=GetPixelComponents(image);
         }
-        break;
-      }
-      case BlueChannel:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
+      if ((GetPixelBlueTraits(image) & ActivePixelTrait) != 0)
         {
           SetPixelRed(image,GetPixelBlue(image,q),q);
           SetPixelGreen(image,GetPixelBlue(image,q),q);
-          q+=GetPixelComponents(image);
-        }
-        break;
-      }
-      case AlphaChannel:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
-        {
-          SetPixelRed(image,GetPixelAlpha(image,q),q);
-          SetPixelGreen(image,GetPixelAlpha(image,q),q);
-          SetPixelBlue(image,GetPixelAlpha(image,q),q);
-          q+=GetPixelComponents(image);
         }
-        break;
-      }
-      case BlackChannel:
-      {
-        if ((image->storage_class != PseudoClass) &&
-            (image->colorspace != CMYKColorspace))
-          break;
-        for (x=0; x < (ssize_t) image->columns; x++)
+      if (((GetPixelBlackTraits(image) & ActivePixelTrait) != 0) &&
+          (image->colorspace == CMYKColorspace))
         {
           SetPixelRed(image,GetPixelBlack(image,q),q);
           SetPixelGreen(image,GetPixelBlack(image,q),q);
           SetPixelBlue(image,GetPixelBlack(image,q),q);
-          q+=GetPixelComponents(image);
         }
-        break;
-      }
-      case TrueAlphaChannel:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
+      if (((GetPixelAlphaTraits(image) & ActivePixelTrait) != 0) &&
+          (image->matte != MagickFalse))
         {
           SetPixelRed(image,GetPixelAlpha(image,q),q);
           SetPixelGreen(image,GetPixelAlpha(image,q),q);
           SetPixelBlue(image,GetPixelAlpha(image,q),q);
-          q+=GetPixelComponents(image);
         }
-        break;
-      }
-      case GrayChannels:
-      {
-        for (x=0; x < (ssize_t) image->columns; x++)
-        {
-          SetPixelAlpha(image,GetPixelIntensity(image,q),q);
-          q+=GetPixelComponents(image);
-        }
-        break;
-      }
-      default:
-        break;
+      q+=GetPixelComponents(image);
     }
     if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
       status=MagickFalse;
@@ -2440,7 +2383,7 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image,
           proceed;
 
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
-        #pragma omp critical (MagickCore_SeparateImageChannel)
+        #pragma omp critical (MagickCore_SeparateImage)
 #endif
         proceed=SetImageProgress(image,SeparateImageTag,progress++,image->rows);
         if (proceed == MagickFalse)
@@ -2448,8 +2391,6 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image,
       }
   }
   image_view=DestroyCacheView(image_view);
-  if (channel != GrayChannels)
-    image->matte=MagickFalse;
   (void) SetImageColorspace(image,RGBColorspace);
   return(status);
 }
@@ -2471,21 +2412,16 @@ MagickExport MagickBooleanType SeparateImageChannel(Image *image,
 %  The format of the SeparateImages method is:
 %
 %      MagickBooleanType SeparateImages(const Image *image,
-%        const ChannelType channel,ExceptionInfo *exception)
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
 %    o image: the image.
 %
-%    o channel: Identify which channels to extract: RedChannel, GreenChannel,
-%      BlueChannel, AlphaChannel, CyanChannel, MagentaChannel,
-%      YellowChannel, or BlackChannel.
-%
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport Image *SeparateImages(const Image *image,const ChannelType channel,
-  ExceptionInfo *exception)
+MagickExport Image *SeparateImages(const Image *image,ExceptionInfo *exception)
 {
   Image
     *images,
@@ -2499,31 +2435,42 @@ MagickExport Image *SeparateImages(const Image *image,const ChannelType channel,
   if ((GetPixelRedTraits(image) & ActivePixelTrait) != 0)
     {
       separate_image=CloneImage(image,0,0,MagickTrue,exception);
-      (void) SeparateImageChannel(separate_image,RedChannel);
+      PushPixelComponentMap(separate_image,RedChannel);
+      (void) SeparateImage(separate_image);
+      PopPixelComponentMap(separate_image);
       AppendImageToList(&images,separate_image);
     }
   if ((GetPixelGreenTraits(image) & ActivePixelTrait) != 0)
     {
       separate_image=CloneImage(image,0,0,MagickTrue,exception);
-      (void) SeparateImageChannel(separate_image,GreenChannel);
+      PushPixelComponentMap(separate_image,GreenChannel);
+      (void) SeparateImage(separate_image);
+      PopPixelComponentMap(separate_image);
       AppendImageToList(&images,separate_image);
     }
   if ((GetPixelBlueTraits(image) & ActivePixelTrait) != 0)
     {
       separate_image=CloneImage(image,0,0,MagickTrue,exception);
-      (void) SeparateImageChannel(separate_image,BlueChannel);
+      PushPixelComponentMap(separate_image,BlueChannel);
+      (void) SeparateImage(separate_image);
+      PopPixelComponentMap(separate_image);
       AppendImageToList(&images,separate_image);
     }
-  if (((GetPixelBlackTraits(image) & ActivePixelTrait) != 0) && (image->colorspace == CMYKColorspace))
+  if (((GetPixelBlackTraits(image) & ActivePixelTrait) != 0) &&
+      (image->colorspace == CMYKColorspace))
     {
       separate_image=CloneImage(image,0,0,MagickTrue,exception);
-      (void) SeparateImageChannel(separate_image,BlackChannel);
+      PushPixelComponentMap(separate_image,BlackChannel);
+      (void) SeparateImage(separate_image);
+      PopPixelComponentMap(separate_image);
       AppendImageToList(&images,separate_image);
     }
   if ((GetPixelAlphaTraits(image) & ActivePixelTrait) != 0)
     {
       separate_image=CloneImage(image,0,0,MagickTrue,exception);
-      (void) SeparateImageChannel(separate_image,AlphaChannel);
+      PushPixelComponentMap(separate_image,AlphaChannel);
+      (void) SeparateImage(separate_image);
+      PopPixelComponentMap(separate_image);
       AppendImageToList(&images,separate_image);
     }
   return(images);
@@ -2658,10 +2605,12 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
     case CopyAlphaChannel:
     {
       /*
-        Special usage case for SeparateImageChannel(): copy grayscale color to
+        Special usage case for SeparateImage(): copy grayscale color to
         the alpha channel.
       */
-      status=SeparateImageChannel(image,GrayChannels);
+      PushPixelComponentMap(image,GrayChannel);
+      status=SeparateImage(image);
+      PopPixelComponentMap(image);
       image->matte=MagickTrue; /* make sure transparency is now on! */
       if (alpha_type == ShapeAlphaChannel)
         {
@@ -2679,7 +2628,9 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image,
     }
     case ExtractAlphaChannel:
     {
-      status=SeparateImageChannel(image,TrueAlphaChannel);
+      PushPixelComponentMap(image,AlphaChannel);
+      status=SeparateImage(image);
+      PopPixelComponentMap(image);
       image->matte=MagickFalse;
       break;
     }
index 8faccd19102890e946d00e02caea21b86e29dcc8..5f770b174137a3a281164fd417ba28fb41630ea5 100644 (file)
@@ -489,14 +489,14 @@ extern MagickExport Image
   *AppendImages(const Image *,const MagickBooleanType,ExceptionInfo *),
   *CloneImage(const Image *,const size_t,const size_t,const MagickBooleanType,
     ExceptionInfo *),
-  *CombineImages(const Image *,const ChannelType,ExceptionInfo *),
+  *CombineImages(const Image *,ExceptionInfo *),
   *DestroyImage(Image *),
   *GetImageClipMask(const Image *,ExceptionInfo *),
   *GetImageMask(const Image *,ExceptionInfo *),
   *NewMagickImage(const ImageInfo *,const size_t,const size_t,
     const PixelInfo *),
   *ReferenceImage(Image *),
-  *SeparateImages(const Image *,const ChannelType,ExceptionInfo *),
+  *SeparateImages(const Image *,ExceptionInfo *),
   *SmushImages(const Image *,const MagickBooleanType,const ssize_t,
     ExceptionInfo *);
 
@@ -516,7 +516,7 @@ extern MagickExport MagickBooleanType
   ListMagickInfo(FILE *,ExceptionInfo *),
   ModifyImage(Image **,ExceptionInfo *),
   ResetImagePage(Image *,const char *),
-  SeparateImageChannel(Image *,const ChannelType),
+  SeparateImage(Image *),
   SetImageAlphaChannel(Image *,const AlphaChannelType),
   SetImageBackgroundColor(Image *),
   SetImageClipMask(Image *,const Image *),
index 6559b59c81141ddd4cb4768c861a3d401bf2d86f..9002a55f6ee8504fd986a62d36a0ca552edfb250 100644 (file)
@@ -12,7 +12,9 @@
 /* #undef AUTOTRACE_DELEGATE */
 
 /* Define if coders and filters are to be built as modules. */
-/* #undef BUILD_MODULES */
+#ifndef MAGICKCORE_BUILD_MODULES
+#define MAGICKCORE_BUILD_MODULES 1
+#endif
 
 /* Define if you have the bzip2 library */
 #ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -78,7 +80,9 @@
 #endif
 
 /* Define if you have FFTW library */
-/* #undef FFTW_DELEGATE */
+#ifndef MAGICKCORE_FFTW_DELEGATE
+#define MAGICKCORE_FFTW_DELEGATE 1
+#endif
 
 /* Location of filter modules */
 #ifndef MAGICKCORE_FILTER_PATH
 #endif
 
 /* Define if you have the <lcms2.h> header file. */
-#ifndef MAGICKCORE_HAVE_LCMS2_H
-#define MAGICKCORE_HAVE_LCMS2_H 1
-#endif
+/* #undef HAVE_LCMS2_H */
 
 /* Define if you have the <lcms2/lcms2.h> header file. */
 /* #undef HAVE_LCMS2_LCMS2_H */
 
 /* Define if you have the <lcms.h> header file. */
-/* #undef HAVE_LCMS_H */
+#ifndef MAGICKCORE_HAVE_LCMS_H
+#define MAGICKCORE_HAVE_LCMS_H 1
+#endif
 
 /* Define if you have the <lcms/lcms.h> header file. */
 /* #undef HAVE_LCMS_LCMS_H */
 #endif
 
 /* Define if you have JBIG library */
-/* #undef JBIG_DELEGATE */
+#ifndef MAGICKCORE_JBIG_DELEGATE
+#define MAGICKCORE_JBIG_DELEGATE 1
+#endif
 
 /* Define if you have JPEG version 2 "Jasper" library */
 #ifndef MAGICKCORE_JP2_DELEGATE
 #endif
 
 /* Define if you have LQR library */
-/* #undef LQR_DELEGATE */
+#ifndef MAGICKCORE_LQR_DELEGATE
+#define MAGICKCORE_LQR_DELEGATE 1
+#endif
 
 /* Define if using libltdl to support dynamically loadable modules */
 #ifndef MAGICKCORE_LTDL_DELEGATE
 
 /* Define to the system default library search path. */
 #ifndef MAGICKCORE_LT_DLSEARCH_PATH
-#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
+#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
 #endif
 
 /* The archive extension */
 /* #undef NO_MINUS_C_MINUS_O */
 
 /* Define if you have OPENEXR library */
-/* #undef OPENEXR_DELEGATE */
+#ifndef MAGICKCORE_OPENEXR_DELEGATE
+#define MAGICKCORE_OPENEXR_DELEGATE 1
+#endif
 
 /* Define to the address where bug reports for this package should be sent. */
 #ifndef MAGICKCORE_PACKAGE_BUGREPORT
 #endif
 
 /* Define if you have RSVG library */
-/* #undef RSVG_DELEGATE */
+#ifndef MAGICKCORE_RSVG_DELEGATE
+#define MAGICKCORE_RSVG_DELEGATE 1
+#endif
 
 /* Define to the type of arg 1 for `select'. */
 #ifndef MAGICKCORE_SELECT_TYPE_ARG1
 
 
 /* Define if you have WEBP library */
-/* #undef WEBP_DELEGATE */
+#ifndef MAGICKCORE_WEBP_DELEGATE
+#define MAGICKCORE_WEBP_DELEGATE 1
+#endif
 
 /* Define to use the Windows GDI32 library */
 /* #undef WINGDI32_DELEGATE */
 /* #undef WITH_DMALLOC */
 
 /* Define if you have WMF library */
-/* #undef WMF_DELEGATE */
+#ifndef MAGICKCORE_WMF_DELEGATE
+#define MAGICKCORE_WMF_DELEGATE 1
+#endif
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
index 62d088c4b77e6127cc97b28575d4ae32faebc71c..591ab9f54ae75f0b3459909e4fb5713f2bec9547 100644 (file)
@@ -1042,7 +1042,7 @@ extern "C" {
 #define SelectiveBlurImage  PrependMagickMethod(SelectiveBlurImage)
 #define SemaphoreComponentGenesis  PrependMagickMethod(SemaphoreComponentGenesis)
 #define SemaphoreComponentTerminus  PrependMagickMethod(SemaphoreComponentTerminus)
-#define SeparateImageChannel  PrependMagickMethod(SeparateImageChannel)
+#define SeparateImage  PrependMagickMethod(SeparateImage)
 #define SeparateImages  PrependMagickMethod(SeparateImages)
 #define SepiaToneImage  PrependMagickMethod(SepiaToneImage)
 #define SetBlobExempt  PrependMagickMethod(SetBlobExempt)
index f0d2db2fd9c162ddd7c4c3f6d1ba84defd7efcf6..50b9a5540ba99c2ff44a2ab5c43a80e68a755828 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision  "4739"
+#define MagickSVNRevision  "exported"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  5,0,0
index 48220b472a3a04425b8a5b1217733b01d5ec3126..f9ee5a495428f18b0d18a7e896101c7b42055c4b 100644 (file)
@@ -1608,18 +1608,14 @@ WandExport MagickBooleanType MagickColorMatrixImage(MagickWand *wand,
 %
 %  The format of the MagickCombineImages method is:
 %
-%      MagickWand *MagickCombineImages(MagickWand *wand,
-%        const ChannelType channel)
+%      MagickWand *MagickCombineImages(MagickWand *wand)
 %
 %  A description of each parameter follows:
 %
 %    o wand: the magick wand.
 %
-%    o channel: the channel.
-%
 */
-WandExport MagickWand *MagickCombineImages(MagickWand *wand,
-  const ChannelType channel)
+WandExport MagickWand *MagickCombineImages(MagickWand *wand)
 {
   Image
     *combine_image;
@@ -1630,7 +1626,7 @@ WandExport MagickWand *MagickCombineImages(MagickWand *wand,
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     return((MagickWand *) NULL);
-  combine_image=CombineImages(wand->images,channel,wand->exception);
+  combine_image=CombineImages(wand->images,wand->exception);
   if (combine_image == (Image *) NULL)
     return((MagickWand *) NULL);
   return(CloneMagickWandFromImages(wand,combine_image));
@@ -8805,24 +8801,20 @@ WandExport MagickBooleanType MagickSelectiveBlurImageChannel(MagickWand *wand,
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  MagickSeparateImageChannel() separates a channel from the image and returns a
+%  MagickSeparateImage() separates a channel from the image and returns a
 %  grayscale image.  A channel is a particular color component of each pixel
 %  in the image.
 %
-%  The format of the MagickSeparateImageChannel method is:
+%  The format of the MagickSeparateImage method is:
 %
-%      MagickBooleanType MagickSeparateImageChannel(MagickWand *wand,
-%        const ChannelType channel)
+%      MagickBooleanType MagickSeparateImage(MagickWand *wand)
 %
 %  A description of each parameter follows:
 %
 %    o wand: the magick wand.
 %
-%    o channel: the image channel(s).
-%
 */
-WandExport MagickBooleanType MagickSeparateImageChannel(MagickWand *wand,
-  const ChannelType channel)
+WandExport MagickBooleanType MagickSeparateImage(MagickWand *wand)
 {
   MagickBooleanType
     status;
@@ -8833,7 +8825,7 @@ WandExport MagickBooleanType MagickSeparateImageChannel(MagickWand *wand,
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=SeparateImageChannel(wand->images,channel);
+  status=SeparateImage(wand->images);
   if (status == MagickFalse)
     InheritException(wand->exception,&wand->images->exception);
   return(status);
index 002b9ddc0049b69925ac128af44c069344c715c4..0a17b2ee0a5e0dcaa0fcb3e9c25e22de7104037b 100644 (file)
@@ -256,7 +256,7 @@ extern WandExport MagickBooleanType
   MagickSelectiveBlurImage(MagickWand *,const double,const double,const double),
   MagickSelectiveBlurImageChannel(MagickWand *,const ChannelType,const double,
     const double,const double),
-  MagickSeparateImageChannel(MagickWand *,const ChannelType),
+  MagickSeparateImage(MagickWand *),
   MagickSepiaToneImage(MagickWand *,const double),
   MagickSetImage(MagickWand *,const MagickWand *),
   MagickSetImageAlphaChannel(MagickWand *,const AlphaChannelType),
@@ -352,7 +352,7 @@ WandExport MagickProgressMonitor
 extern WandExport MagickWand
   *MagickAppendImages(MagickWand *,const MagickBooleanType),
   *MagickCoalesceImages(MagickWand *),
-  *MagickCombineImages(MagickWand *,const ChannelType),
+  *MagickCombineImages(MagickWand *),
   *MagickCompareImages(MagickWand *,const MagickWand *,const MetricType,
     double *),
   *MagickCompareImagesLayers(MagickWand *,const ImageLayerMethod),
index c006c9fadc99fc5e02dca8fe7f1effd7094c7885..0b2e82f99c6261c7b0effc926939ed6c4661f20f 100644 (file)
@@ -2585,10 +2585,9 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
           {
             /*
               Break channels into separate images.
-              WARNING: This can generate multiple images!
             */
             (void) SyncImageSettings(mogrify_info,*image);
-            mogrify_image=SeparateImages(*image,channel,exception);
+            mogrify_image=SeparateImages(*image,exception);
             break;
           }
         if (LocaleCompare("sepia-tone",option+1) == 0)
@@ -7394,7 +7393,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
               *combine_image;
 
             (void) SyncImagesSettings(mogrify_info,*images);
-            combine_image=CombineImages(*images,channel,exception);
+            combine_image=CombineImages(*images,exception);
             if (combine_image == (Image *) NULL)
               {
                 status=MagickFalse;
index b27825246ba80e24d11aea5559b7a9279511ed78..72b450f5563a35820a4d27ee3763fa9a9c494719 100644 (file)
@@ -9047,7 +9047,9 @@ Mogrify(ref,...)
         {
           if (attribute_flag[0] != 0)
             channel=(ChannelType) argument_list[0].integer_reference;
-          (void) SeparateImageChannel(image,channel);
+          PushPixelComponentMap(image,channel);
+          (void) SeparateImage(image,channel);
+          PopPixelComponentMap(image);
           break;
         }
         case 63:  /* Stereo */
@@ -9612,7 +9614,9 @@ Mogrify(ref,...)
         {
           if (attribute_flag[0] != 0)
             channel=(ChannelType) argument_list[0].integer_reference;
-          (void) SeparateImageChannel(image,channel);
+          PushPixelComponentMap(image,channel);
+          (void) SeparateImage(image,channel);
+          PopPixelComponentMap(image);
           break;
         }
         case 87:  /* Splice */
index bc041fd0360b78b9eb8bde2c208e42dcb0ca644f..ca9edcd44400d3a4dd3e9a251b576d619dfb4e17 100644 (file)
@@ -11563,7 +11563,9 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info,
         ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
 
       (void) CopyMagickString(jpeg_image->magick,"JPEG",MaxTextExtent);
-      status=SeparateImageChannel(jpeg_image,AlphaChannel);
+      PushPixelComponentMap(jpeg_image,AlphaChannel);
+      status=SeparateImage(jpeg_image);
+      PopPixelComponentMap(jpeg_image);
       jpeg_image->matte=MagickFalse;
 
       if (jng_quality >= 1000)
index 09fd6033a878c1eb546f4fb20e6a325bda31d41c..84c10c889c5db55b62e108f3cf2c51ae5f971bd3 100644 (file)
@@ -515,7 +515,9 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info,
   mask_image=CloneImage(image,0,0,MagickTrue,&image->exception);
   if (mask_image == (Image *) NULL)
     ThrowWriterException(CoderError,image->exception.reason);
-  status=SeparateImageChannel(mask_image,OpacityChannel);
+  PushPixelComponentMap(mask_image,AlphaChannel);
+  status=SeparateImage(mask_image);
+  PopPixelComponentMap(mask_image);
   if (status == MagickFalse)
     {
       mask_image=DestroyImage(mask_image);
index 30f2f938ccb2afec7b020bae3b524cb22627a7f0..262ccc76786fb596fca6194ad003cd2913784456 100644 (file)
@@ -422,7 +422,8 @@ ModuleExport void UnregisterXTRNImage(void)
 %
 %  The format of the WriteXTRNImage method is:
 %
-%      MagickBooleanType WriteXTRNImage(const ImageInfo *image_info,Image *image)
+%      MagickBooleanType WriteXTRNImage(const ImageInfo *image_info,
+%        Image *image)
 %
 %  A description of each parameter follows.
 %