diff --git a/MagickCore/image.c b/MagickCore/image.c
index 41f7fb3..c3163b1 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -2101,26 +2101,26 @@
{
case RedPixelChannel:
{
- composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],
- beta,(double) p->red,alpha));
+ composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],beta,
+ (double) p->red,alpha));
break;
}
case GreenPixelChannel:
{
- composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],
- beta,(double) p->green,alpha));
+ composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],beta,
+ (double) p->green,alpha));
break;
}
case BluePixelChannel:
{
- composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],
- beta,(double) p->blue,alpha));
+ composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],beta,
+ (double) p->blue,alpha));
break;
}
case BlackPixelChannel:
{
- composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],
- beta,(double) p->black,alpha));
+ composite[i]=ClampToQuantum(gamma*MagickOver_((double) q[i],beta,
+ (double) p->black,alpha));
break;
}
case AlphaPixelChannel:
diff --git a/MagickCore/image.h b/MagickCore/image.h
index 1075995..058645f 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -24,8 +24,8 @@
#include <MagickCore/color.h>
-#define OpaqueAlpha (QuantumRange)
-#define TransparentAlpha ((Quantum) 0UL)
+#define OpaqueAlpha ((Quantum) QuantumRange)
+#define TransparentAlpha ((Quantum) 0)
typedef enum
{
@@ -44,6 +44,13 @@
typedef enum
{
+ UndefinedAlpha,
+ InactiveAlpha,
+ ActiveAlpha
+} AlphaChannelState;
+
+typedef enum
+{
UndefinedType,
BilevelType,
GrayscaleType,
@@ -273,6 +280,9 @@
MagickBooleanType
mask;
+ AlphaChannelState
+ alpha;
+
size_t
number_channels,
number_meta_channels,
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 077f7a1..449ed00 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -90,7 +90,7 @@
{ "Start", LeftAlign, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedAlign, UndefinedOptionFlag, MagickFalse }
},
- AlphaOptions[] =
+ AlphaChannelOptions[] =
{
{ "Undefined", UndefinedAlphaChannel, UndefinedOptionFlag, MagickTrue },
{ "Activate", ActivateAlphaChannel, UndefinedOptionFlag, MagickFalse },
@@ -108,6 +108,13 @@
{ "Transparent", TransparentAlphaChannel, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedAlphaChannel, UndefinedOptionFlag, MagickFalse }
},
+ AlphaStateOptions[] =
+ {
+ { "Undefined", UndefinedAlpha, UndefinedOptionFlag, MagickTrue },
+ { "Active", ActiveAlpha, UndefinedOptionFlag, MagickFalse },
+ { "Inactive", InactiveAlpha, UndefinedOptionFlag, MagickFalse },
+ { (char *) NULL, MagickFalse, UndefinedOptionFlag, MagickFalse }
+ },
BooleanOptions[] =
{
{ "False", MagickFalse, UndefinedOptionFlag, MagickFalse },
@@ -1193,7 +1200,7 @@
ListOptions[] =
{
{ "Align", MagickAlignOptions, UndefinedOptionFlag, MagickFalse },
- { "Alpha", MagickAlphaOptions, UndefinedOptionFlag, MagickFalse },
+ { "Alpha", MagickAlphaChannelOptions, UndefinedOptionFlag, MagickFalse },
{ "Boolean", MagickBooleanOptions, UndefinedOptionFlag, MagickFalse },
{ "Channel", MagickChannelOptions, UndefinedOptionFlag, MagickFalse },
{ "Class", MagickClassOptions, UndefinedOptionFlag, MagickFalse },
@@ -1642,7 +1649,8 @@
switch (option)
{
case MagickAlignOptions: return(AlignOptions);
- case MagickAlphaOptions: return(AlphaOptions);
+ case MagickAlphaChannelOptions: return(AlphaChannelOptions);
+ case MagickAlphaStateOptions: return(AlphaStateOptions);
case MagickBooleanOptions: return(BooleanOptions);
case MagickChannelOptions: return(ChannelOptions);
case MagickClassOptions: return(ClassOptions);
diff --git a/MagickCore/option.h b/MagickCore/option.h
index aa75044..3b1a872 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -26,7 +26,8 @@
{
MagickUndefinedOptions = -1,
MagickAlignOptions = 0,
- MagickAlphaOptions,
+ MagickAlphaChannelOptions,
+ MagickAlphaStateOptions,
MagickBooleanOptions,
MagickChannelOptions,
MagickClassOptions,
diff --git a/MagickWand/animate.c b/MagickWand/animate.c
index 2912fa2..a8f1a5c 100644
--- a/MagickWand/animate.c
+++ b/MagickWand/animate.c
@@ -479,7 +479,7 @@
i++;
if (i == (ssize_t) argc)
ThrowAnimateException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowAnimateException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/compare.c b/MagickWand/compare.c
index b61b394..f2988cd 100644
--- a/MagickWand/compare.c
+++ b/MagickWand/compare.c
@@ -348,7 +348,7 @@
i++;
if (i == (ssize_t) argc)
ThrowCompareException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowCompareException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/composite.c b/MagickWand/composite.c
index 830b4b0..08429ca 100644
--- a/MagickWand/composite.c
+++ b/MagickWand/composite.c
@@ -554,7 +554,7 @@
i++;
if (i == (ssize_t) argc)
ThrowCompositeException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowCompositeException(OptionError,
"UnrecognizedAlphaChannelType",argv[i]);
diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index b36f0cd..30eec2b 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -666,7 +666,7 @@
i++;
if (i == (ssize_t) argc)
ThrowConvertException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowConvertException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/display.c b/MagickWand/display.c
index 629001d..1d157d8 100644
--- a/MagickWand/display.c
+++ b/MagickWand/display.c
@@ -692,7 +692,7 @@
i++;
if (i == (ssize_t) argc)
ThrowDisplayException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowDisplayException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/identify.c b/MagickWand/identify.c
index 95f5c4d..8289fe3 100644
--- a/MagickWand/identify.c
+++ b/MagickWand/identify.c
@@ -367,7 +367,7 @@
i++;
if (i == (ssize_t) argc)
ThrowIdentifyException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowIdentifyException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 376529c..df24922 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -796,7 +796,7 @@
alpha_type;
(void) SyncImageSettings(mogrify_info,*image,exception);
- alpha_type=(AlphaChannelType) ParseCommandOption(MagickAlphaOptions,
+ alpha_type=(AlphaChannelType) ParseCommandOption(MagickAlphaChannelOptions,
MagickFalse,argv[i+1]);
(void) SetImageAlphaChannel(*image,alpha_type,exception);
break;
@@ -3824,7 +3824,7 @@
i++;
if (i == (ssize_t) argc)
ThrowMogrifyException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowMogrifyException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index 8a32145..d21dcb6 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -470,7 +470,7 @@
i++;
if (i == (ssize_t) argc)
ThrowMontageException(OptionError,"MissingArgument",option);
- type=ParseCommandOption(MagickAlphaOptions,MagickFalse,argv[i]);
+ type=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,argv[i]);
if (type < 0)
ThrowMontageException(OptionError,"UnrecognizedAlphaChannelType",
argv[i]);
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 6f6d378..8558b99 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -1754,7 +1754,7 @@
}
if (LocaleCompare("alpha",option+1) == 0)
{
- parse=ParseCommandOption(MagickAlphaOptions,MagickFalse,arg1);
+ parse=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,arg1);
if (parse < 0)
CLIWandExceptArgBreak(OptionError,"UnrecognizedAlphaChannelType",
option,arg1);
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 9870720..a685424 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -1103,7 +1103,7 @@
}
if (LocaleCompare(attribute,"alpha") == 0)
{
- sp=SvPOK(sval) ? ParseCommandOption(MagickAlphaOptions,MagickFalse,
+ sp=SvPOK(sval) ? ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,
SvPV(sval,na)) : SvIV(sval);
if (sp < 0)
{
diff --git a/coders/msl.c b/coders/msl.c
index 82c7c9b..1944058 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -7949,7 +7949,7 @@
ssize_t
alpha;
- alpha=ParseCommandOption(MagickAlphaOptions,MagickFalse,value);
+ alpha=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,value);
if (alpha < 0)
ThrowMSLException(OptionError,"UnrecognizedType",value);
if (image != (Image *) NULL)