]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 23 Oct 2011 23:21:25 +0000 (23:21 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 23 Oct 2011 23:21:25 +0000 (23:21 +0000)
MagickCore/log.h
MagickCore/option.c
MagickCore/option.h
MagickCore/pixel.c
MagickCore/pixel.h
MagickCore/version.h

index 27bf8afb9dd533b95e81a019f850925d2d2c58b4..156e36d8e4e9840501a72dfb00092bceb87ab6d3 100644 (file)
@@ -47,12 +47,13 @@ typedef enum
   ImageEvent = 0x00200,
   LocaleEvent = 0x00400,
   ModuleEvent = 0x00800,
-  PolicyEvent = 0x01000,
-  ResourceEvent = 0x02000,
-  TransformEvent = 0x04000,
-  UserEvent = 0x09000,
-  WandEvent = 0x10000,
-  X11Event = 0x20000,
+  PixelEvent = 0x01000,
+  PolicyEvent = 0x02000,
+  ResourceEvent = 0x04000,
+  TransformEvent = 0x08000,
+  UserEvent = 0x10000,
+  WandEvent = 0x20000,
+  X11Event = 0x40000,
   AllEvents = 0x7fffffff
 } LogEventType;
 
index eb0b7b8558f029fcd6a8e29dfff0889fb3df26c6..5df40c42cf5fb022857eb08ce8a95e67a0c304d8 100644 (file)
@@ -1198,6 +1198,8 @@ static const OptionInfo
     { "Module", MagickModuleOptions, UndefinedOptionFlag, MagickFalse },
     { "Noise", MagickNoiseOptions, UndefinedOptionFlag, MagickFalse },
     { "Orientation", MagickOrientationOptions, UndefinedOptionFlag, MagickFalse },
+    { "PixelChannel", MagickPixelChannelOptions, UndefinedOptionFlag, MagickFalse },
+    { "PixelTrait", MagickPixelTraitOptions, UndefinedOptionFlag, MagickFalse },
     { "Policy", MagickPolicyOptions, UndefinedOptionFlag, MagickFalse },
     { "PolicyDomain", MagickPolicyDomainOptions, UndefinedOptionFlag, MagickFalse },
     { "PolicyRights", MagickPolicyRightsOptions, UndefinedOptionFlag, MagickFalse },
@@ -1233,6 +1235,7 @@ static const OptionInfo
     { "Locale", LocaleEvent, UndefinedOptionFlag, MagickFalse },
     { "Module", ModuleEvent, UndefinedOptionFlag, MagickFalse },
     { "None", NoEvents, UndefinedOptionFlag, MagickFalse },
+    { "Pixel", PixelEvent, UndefinedOptionFlag, MagickFalse },
     { "Policy", PolicyEvent, UndefinedOptionFlag, MagickFalse },
     { "Resource", ResourceEvent, UndefinedOptionFlag, MagickFalse },
     { "Trace", TraceEvent, UndefinedOptionFlag, MagickFalse },
@@ -1331,6 +1334,36 @@ static const OptionInfo
     { "LeftBottom", LeftBottomOrientation, UndefinedOptionFlag, MagickFalse },
     { (char *) NULL, UndefinedOrientation, UndefinedOptionFlag, MagickFalse }
   },
+  PixelChannelOptions[] =
+  {
+    { "Undefined", UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Alpha", AlphaPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Black", BlackPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Blue", BluePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cb", CbPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Composite", CompositePixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cr", CrPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Cyan", CyanPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Gray", GrayPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Green", GreenPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Index", IndexPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Intensity", IntensityPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Magenta", MagentaPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Mask", MaskPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Red", RedPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Sync", SyncPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Y", YPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { "Yellow", YellowPixelChannel, UndefinedOptionFlag, MagickFalse },
+    { (char *) NULL, UndefinedPixelChannel, UndefinedOptionFlag, MagickFalse }
+  },
+  PixelTraitOptions[] =
+  {
+    { "Undefined", UndefinedPixelTrait, UndefinedOptionFlag, MagickTrue },
+    { "Blend", BlendPixelTrait, UndefinedOptionFlag, MagickFalse },
+    { "Copy", CopyPixelTrait, UndefinedOptionFlag, MagickFalse },
+    { "Update", UpdatePixelTrait, UndefinedOptionFlag, MagickFalse },
+    { (char *) NULL, UndefinedPixelTrait, UndefinedOptionFlag, MagickFalse }
+  },
   PolicyDomainOptions[] =
   {
     { "Undefined", UndefinedPolicyDomain, UndefinedOptionFlag, MagickTrue },
@@ -1818,6 +1851,8 @@ static const OptionInfo *GetOptionInfo(const CommandOption option)
     case MagickMorphologyOptions: return(MorphologyOptions);
     case MagickNoiseOptions: return(NoiseOptions);
     case MagickOrientationOptions: return(OrientationOptions);
+    case MagickPixelChannelOptions: return(PixelChannelOptions);
+    case MagickPixelTraitOptions: return(PixelTraitOptions);
     case MagickPolicyDomainOptions: return(PolicyDomainOptions);
     case MagickPolicyRightsOptions: return(PolicyRightsOptions);
     case MagickPreviewOptions: return(PreviewOptions);
index 732f24e68c42637e87533a1a2f0aff0b4ebc6ec2..bbe7ac1069aea111f9731fa00ba015f12574e0e3 100644 (file)
@@ -75,6 +75,8 @@ typedef enum
   MagickMorphologyOptions,
   MagickNoiseOptions,
   MagickOrientationOptions,
+  MagickPixelChannelOptions,
+  MagickPixelTraitOptions,
   MagickPolicyOptions,
   MagickPolicyDomainOptions,
   MagickPolicyRightsOptions,
index c6b42f7f7e130879e918e08dc51a83787b0ec5a8..d90c2990bd6cb1262a783ddb58cb3a54f8f717db 100644 (file)
@@ -3560,6 +3560,84 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image,
 %    o image: the image.
 %
 */
+
+static void LogPixelChannels(const Image *image)
+{
+  register ssize_t
+    i;
+
+  (void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%.20g]",
+    image->filename,(double) image->number_channels);
+  for (i=0; i < (ssize_t) image->number_channels; i++)
+  {
+    char
+      traits[MaxTextExtent];
+
+    const char
+      *channel;
+
+    switch (image->channel_map[i].channel)
+    {
+      case RedPixelChannel:
+      {
+        channel="red";
+        if (image->colorspace == CMYKColorspace)
+          channel="cyan";
+        if (image->colorspace == GRAYColorspace)
+          channel="gray";
+        break;
+      }
+      case GreenPixelChannel:
+      {
+        channel="green";
+        if (image->colorspace == CMYKColorspace)
+          channel="magenta";
+        break;
+      }
+      case BluePixelChannel:
+      {
+        channel="blue";
+        if (image->colorspace == CMYKColorspace)
+          channel="yellow";
+        break;
+      }
+      case BlackPixelChannel:
+      {
+        channel="black";
+        if (image->storage_class == PseudoClass)
+          channel="index";
+        break;
+      }
+      case AlphaPixelChannel:
+      {
+        channel="alpha";
+        break;
+      }
+      case MaskPixelChannel:
+      {
+        channel="mask";
+        break;
+      }
+      default:
+      {
+        channel="undefined";
+      }
+    }
+    *traits='\0';
+    if ((image->channel_map[i].traits & UpdatePixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"update,",MaxTextExtent);
+    if ((image->channel_map[i].traits & BlendPixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"blend,",MaxTextExtent);
+    if ((image->channel_map[i].traits & CopyPixelTrait) != 0)
+      (void) ConcatenateMagickString(traits,"copy,",MaxTextExtent);
+    if (*traits == '\0')
+      (void) ConcatenateMagickString(traits,"undefined,",MaxTextExtent);
+    traits[strlen(traits)-1]='\0';
+    (void) LogMagickEvent(PixelEvent,GetMagickModule(),"  %.20g: %s (%s)",
+      (double) i,channel,traits);
+  }
+}
+
 MagickExport void InitializePixelChannelMap(Image *image)
 {
   PixelChannel
@@ -3568,6 +3646,8 @@ MagickExport void InitializePixelChannelMap(Image *image)
   register ssize_t
     i;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   for (i=0; i < (ssize_t) MaxPixelChannels; i++)
   {
     SetPixelChannelMapChannel(image,(PixelChannel) i,(PixelChannel) i);
@@ -3605,6 +3685,8 @@ MagickExport void InitializePixelChannelMap(Image *image)
   image->number_channels+=image->number_meta_channels;
   for ( ; i < (ssize_t) image->number_channels; i++)
     SetPixelChannelMapTraits(image,(PixelChannel) i,CopyPixelTrait);
+  if (image->debug != MagickFalse)
+    LogPixelChannels(image);
   (void) SetPixelChannelMask(image,image->channel_mask);
 }
 \f
@@ -5330,6 +5412,8 @@ MagickExport void SetPixelChannelMap(Image *image,
     SetPixelChannelMapTraits(image,(PixelChannel) i,UndefinedPixelTrait);
   if (image->storage_class == PseudoClass)
     SetPixelChannelMapTraits(image,IndexPixelChannel,CopyPixelTrait);
+  if (image->debug != MagickFalse)
+    LogPixelChannels(image);
 }
 \f
 /*
index 5258c5844e3ac78edb1340bd83a00954c8653208..32bb0876eb3e43240d9d79d05f50cc9004eadac2 100644 (file)
@@ -43,6 +43,7 @@ typedef enum
 
 typedef enum
 {
+  UndefinedPixelChannel = 0,
   RedPixelChannel = 0,
   CyanPixelChannel = 0,
   GrayPixelChannel = 0,
index ca147bd00b96e7e78ab17c00c4c3042bc44f814f..4456bb8c5ad487218235e1299fb93ae27ce4d258 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  7
 #define MagickLibMinInterface  7
-#define MagickReleaseDate  "2011-10-22"
+#define MagickReleaseDate  "2011-10-23"
 #define MagickChangeDate   "20110801"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)