From 288a3536ebe731f83c57b0856e64216b98e19362 Mon Sep 17 00:00:00 2001 From: cristy Date: Tue, 28 Aug 2012 00:19:44 +0000 Subject: [PATCH] --- MagickCore/image.c | 16 ++++++++-------- MagickCore/image.h | 14 ++++++++++++-- MagickCore/option.c | 14 +++++++++++--- MagickCore/option.h | 3 ++- MagickWand/animate.c | 2 +- MagickWand/compare.c | 2 +- MagickWand/composite.c | 2 +- MagickWand/convert.c | 2 +- MagickWand/display.c | 2 +- MagickWand/identify.c | 2 +- MagickWand/mogrify.c | 4 ++-- MagickWand/montage.c | 2 +- MagickWand/operation.c | 2 +- PerlMagick/Magick.xs | 2 +- coders/msl.c | 2 +- 15 files changed, 45 insertions(+), 26 deletions(-) diff --git a/MagickCore/image.c b/MagickCore/image.c index 41f7fb322..c3163b1b6 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -2101,26 +2101,26 @@ static inline void FlattenPixelInfo(const Image *image,const PixelInfo *p, { 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 107599553..058645fe7 100644 --- a/MagickCore/image.h +++ b/MagickCore/image.h @@ -24,8 +24,8 @@ extern "C" { #include -#define OpaqueAlpha (QuantumRange) -#define TransparentAlpha ((Quantum) 0UL) +#define OpaqueAlpha ((Quantum) QuantumRange) +#define TransparentAlpha ((Quantum) 0) typedef enum { @@ -42,6 +42,13 @@ typedef enum TransparentAlphaChannel } AlphaChannelType; +typedef enum +{ + UndefinedAlpha, + InactiveAlpha, + ActiveAlpha +} AlphaChannelState; + typedef enum { UndefinedType, @@ -273,6 +280,9 @@ struct _Image MagickBooleanType mask; + AlphaChannelState + alpha; + size_t number_channels, number_meta_channels, diff --git a/MagickCore/option.c b/MagickCore/option.c index 077f7a175..449ed005c 100644 --- a/MagickCore/option.c +++ b/MagickCore/option.c @@ -90,7 +90,7 @@ static const OptionInfo { "Start", LeftAlign, UndefinedOptionFlag, MagickFalse }, { (char *) NULL, UndefinedAlign, UndefinedOptionFlag, MagickFalse } }, - AlphaOptions[] = + AlphaChannelOptions[] = { { "Undefined", UndefinedAlphaChannel, UndefinedOptionFlag, MagickTrue }, { "Activate", ActivateAlphaChannel, UndefinedOptionFlag, MagickFalse }, @@ -108,6 +108,13 @@ static const OptionInfo { "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 @@ static const OptionInfo 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 @@ static const OptionInfo *GetOptionInfo(const CommandOption option) 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 aa75044f9..3b1a87274 100644 --- a/MagickCore/option.h +++ b/MagickCore/option.h @@ -26,7 +26,8 @@ typedef enum { MagickUndefinedOptions = -1, MagickAlignOptions = 0, - MagickAlphaOptions, + MagickAlphaChannelOptions, + MagickAlphaStateOptions, MagickBooleanOptions, MagickChannelOptions, MagickClassOptions, diff --git a/MagickWand/animate.c b/MagickWand/animate.c index 2912fa2f1..a8f1a5c50 100644 --- a/MagickWand/animate.c +++ b/MagickWand/animate.c @@ -479,7 +479,7 @@ WandExport MagickBooleanType AnimateImageCommand(ImageInfo *image_info, 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 b61b3949c..f2988cd2a 100644 --- a/MagickWand/compare.c +++ b/MagickWand/compare.c @@ -348,7 +348,7 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info, 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 830b4b0b3..08429caf6 100644 --- a/MagickWand/composite.c +++ b/MagickWand/composite.c @@ -554,7 +554,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info, 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 b36f0cd06..30eec2b1d 100644 --- a/MagickWand/convert.c +++ b/MagickWand/convert.c @@ -666,7 +666,7 @@ WandExport MagickBooleanType ConvertImageCommand(ImageInfo *image_info, 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 629001deb..1d157d8e3 100644 --- a/MagickWand/display.c +++ b/MagickWand/display.c @@ -692,7 +692,7 @@ WandExport MagickBooleanType DisplayImageCommand(ImageInfo *image_info, 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 95f5c4d12..8289fe3fa 100644 --- a/MagickWand/identify.c +++ b/MagickWand/identify.c @@ -367,7 +367,7 @@ WandExport MagickBooleanType IdentifyImageCommand(ImageInfo *image_info, 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 376529c92..df249223b 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -796,7 +796,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, 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 @@ WandExport MagickBooleanType MogrifyImageCommand(ImageInfo *image_info, 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 8a3214555..d21dcb61d 100644 --- a/MagickWand/montage.c +++ b/MagickWand/montage.c @@ -470,7 +470,7 @@ WandExport MagickBooleanType MontageImageCommand(ImageInfo *image_info, 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 6f6d37897..8558b9975 100644 --- a/MagickWand/operation.c +++ b/MagickWand/operation.c @@ -1754,7 +1754,7 @@ static void CLISimpleOperatorImage(MagickCLI *cli_wand, } 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 9870720c4..a68542428 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -1103,7 +1103,7 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, } 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 82c7c9bf6..194405880 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -7949,7 +7949,7 @@ static MagickBooleanType SetMSLAttributes(MSLInfo *msl_info,const char *keyword, ssize_t alpha; - alpha=ParseCommandOption(MagickAlphaOptions,MagickFalse,value); + alpha=ParseCommandOption(MagickAlphaChannelOptions,MagickFalse,value); if (alpha < 0) ThrowMSLException(OptionError,"UnrecognizedType",value); if (image != (Image *) NULL) -- 2.40.0