Fixed options for -weight and -list weight.
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index f767820..a102797 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -4884,15 +4884,6 @@
option=GetImageOption(clone_info,"encoding");
if (option != (const char *) NULL)
(void) CloneString(&draw_info->encoding,option);
- option=GetImageOption(clone_info,"kerning");
- if (option != (const char *) NULL)
- draw_info->kerning=StringToDouble(option,(char **) NULL);
- option=GetImageOption(clone_info,"interline-spacing");
- if (option != (const char *) NULL)
- draw_info->interline_spacing=StringToDouble(option,(char **) NULL);
- option=GetImageOption(clone_info,"interword-spacing");
- if (option != (const char *) NULL)
- draw_info->interword_spacing=StringToDouble(option,(char **) NULL);
option=GetImageOption(clone_info,"direction");
if (option != (const char *) NULL)
draw_info->direction=(DirectionType) ParseCommandOption(
@@ -4903,6 +4894,23 @@
if (option != (const char *) NULL)
(void) QueryColorCompliance(option,AllCompliance,&draw_info->fill,
exception);
+ option=GetImageOption(clone_info,"gravity");
+ if (option != (const char *) NULL)
+ draw_info->gravity=(GravityType) ParseCommandOption(MagickGravityOptions,
+ MagickFalse,option);
+ option=GetImageOption(clone_info,"interline-spacing");
+ if (option != (const char *) NULL)
+ draw_info->interline_spacing=StringToDouble(option,(char **) NULL);
+ option=GetImageOption(clone_info,"interword-spacing");
+ if (option != (const char *) NULL)
+ draw_info->interword_spacing=StringToDouble(option,(char **) NULL);
+ option=GetImageOption(clone_info,"kerning");
+ if (option != (const char *) NULL)
+ draw_info->kerning=StringToDouble(option,(char **) NULL);
+ option=GetImageOption(clone_info,"style");
+ if (option != (const char *) NULL)
+ draw_info->style=(StyleType) ParseCommandOption(MagickStyleOptions,
+ MagickFalse,option);
option=GetImageOption(clone_info,"stroke");
if (option != (const char *) NULL)
(void) QueryColorCompliance(option,AllCompliance,&draw_info->stroke,
@@ -4914,10 +4922,17 @@
if (option != (const char *) NULL)
(void) QueryColorCompliance(option,AllCompliance,&draw_info->undercolor,
exception);
- option=GetImageOption(clone_info,"gravity");
+ option=GetImageOption(clone_info,"weight");
if (option != (const char *) NULL)
- draw_info->gravity=(GravityType) ParseCommandOption(MagickGravityOptions,
- MagickFalse,option);
+ {
+ ssize_t
+ weight;
+
+ weight=ParseCommandOption(MagickWeightOptions,MagickFalse,option);
+ if (weight == -1)
+ weight=StringToUnsignedLong(option);
+ draw_info->weight=(size_t) weight;
+ }
exception=DestroyExceptionInfo(exception);
draw_info->signature=MagickCoreSignature;
clone_info=DestroyImageInfo(clone_info);
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 6815d76..bbf0eaf 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -1294,6 +1294,7 @@
{ "Font", MagickFontOptions, UndefinedOptionFlag, MagickFalse },
{ "Format", MagickFormatOptions, UndefinedOptionFlag, MagickFalse },
{ "Function", MagickFunctionOptions, UndefinedOptionFlag, MagickFalse },
+ { "Gradient", MagickGradientOptions, UndefinedOptionFlag, MagickFalse },
{ "Gravity", MagickGravityOptions, UndefinedOptionFlag, MagickFalse },
{ "Intensity", MagickPixelIntensityOptions, UndefinedOptionFlag, MagickFalse },
{ "Intent", MagickIntentOptions, UndefinedOptionFlag, MagickFalse },
@@ -1338,6 +1339,7 @@
{ "Undefined", MagickUndefinedOptions, UndefinedOptionFlag, MagickTrue },
{ "Validate", MagickValidateOptions, UndefinedOptionFlag, MagickFalse },
{ "VirtualPixel", MagickVirtualPixelOptions, UndefinedOptionFlag, MagickFalse },
+ { "Weight", MagickWeightOptions, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, MagickUndefinedOptions, UndefinedOptionFlag, MagickFalse }
},
LogEventOptions[] =
@@ -1746,6 +1748,20 @@
{ "VerticalTileEdge", VerticalTileEdgeVirtualPixelMethod, UndefinedOptionFlag, MagickFalse },
{ "White", WhiteVirtualPixelMethod, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedVirtualPixelMethod, UndefinedOptionFlag, MagickFalse }
+ },
+ WeightOptions[] =
+ {
+ { "Undefined", 0L, UndefinedOptionFlag, MagickTrue },
+ { "Thin", 100L, UndefinedOptionFlag, MagickFalse },
+ { "ExtraLight", 200L, UndefinedOptionFlag, MagickFalse },
+ { "Light", 300L, DeprecateOptionFlag, MagickTrue },
+ { "Normal", 400L, UndefinedOptionFlag, MagickFalse },
+ { "Medium", 500L, UndefinedOptionFlag, MagickFalse },
+ { "DemiBold", 600L, UndefinedOptionFlag, MagickFalse },
+ { "Bold", 700L, UndefinedOptionFlag, MagickFalse },
+ { "ExtraBold", 800L, UndefinedOptionFlag, MagickFalse },
+ { "Heavy", 900L, UndefinedOptionFlag, MagickFalse },
+ { (char *) NULL, 0L, UndefinedOptionFlag, MagickFalse }
};
/*
@@ -2053,6 +2069,7 @@
case MagickTypeOptions: return(TypeOptions);
case MagickValidateOptions: return(ValidateOptions);
case MagickVirtualPixelOptions: return(VirtualPixelOptions);
+ case MagickWeightOptions: return(WeightOptions);
default: break;
}
return((const OptionInfo *) NULL);
diff --git a/MagickCore/option.h b/MagickCore/option.h
index 94bd35d..24d7df5 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -99,7 +99,8 @@
MagickThresholdOptions,
MagickTypeOptions,
MagickValidateOptions,
- MagickVirtualPixelOptions
+ MagickVirtualPixelOptions,
+ MagickWeightOptions
} CommandOption;
typedef enum
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 8fe15fb..42f0b8a 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -3273,19 +3273,14 @@
}
if (LocaleCompare("weight",option+1) == 0)
{
- draw_info->weight=StringToUnsignedLong(argv[i+1]);
- if (LocaleCompare(argv[i+1],"all") == 0)
- draw_info->weight=0;
- if (LocaleCompare(argv[i+1],"bold") == 0)
- draw_info->weight=700;
- if (LocaleCompare(argv[i+1],"bolder") == 0)
- if (draw_info->weight <= 800)
- draw_info->weight+=100;
- if (LocaleCompare(argv[i+1],"lighter") == 0)
- if (draw_info->weight >= 100)
- draw_info->weight-=100;
- if (LocaleCompare(argv[i+1],"normal") == 0)
- draw_info->weight=400;
+ ssize_t
+ weight;
+
+ weight=ParseCommandOption(MagickWeightOptions,MagickFalse,
+ argv[i+1]);
+ if (weight == -1)
+ weight=StringToUnsignedLong(argv[i+1]);
+ draw_info->weight=(size_t) weight;
break;
}
if (LocaleCompare("white-threshold",option+1) == 0)
@@ -7402,8 +7397,16 @@
if (LocaleCompare("strokewidth",option+1) == 0)
{
if (*option == '+')
+ (void) SetImageOption(image_info,option+1,"0");
+ else
+ (void) SetImageOption(image_info,option+1,argv[i+1]);
+ break;
+ }
+ if (LocaleCompare("style",option+1) == 0)
+ {
+ if (*option == '+')
{
- (void) SetImageOption(image_info,option+1,"0");
+ (void) SetImageOption(image_info,option+1,"none");
break;
}
(void) SetImageOption(image_info,option+1,argv[i+1]);
@@ -7542,6 +7545,14 @@
}
case 'w':
{
+ if (LocaleCompare("weight",option+1) == 0)
+ {
+ if (*option == '+')
+ (void) SetImageOption(image_info,option+1,"0");
+ else
+ (void) SetImageOption(image_info,option+1,argv[i+1]);
+ break;
+ }
if (LocaleCompare("white-point",option+1) == 0)
{
if (*option == '+')
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 3589f64..e187051 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -1562,23 +1562,13 @@
{
if (LocaleCompare("weight",option+1) == 0)
{
- /* Just what does using a font 'weight' do ???
- There is no "-list weight" output (reference manual says there is)
- */
- arg1=ArgOption("all");
- _draw_info->weight=StringToUnsignedLong(arg1);
- if (LocaleCompare(arg1,"all") == 0)
- _draw_info->weight=0;
- if (LocaleCompare(arg1,"bold") == 0)
- _draw_info->weight=700;
- if (LocaleCompare(arg1,"bolder") == 0)
- if (_draw_info->weight <= 800)
- _draw_info->weight+=100;
- if (LocaleCompare(arg1,"lighter") == 0)
- if (_draw_info->weight >= 100)
- _draw_info->weight-=100;
- if (LocaleCompare(arg1,"normal") == 0)
- _draw_info->weight=400;
+ ssize_t
+ weight;
+
+ weight=ParseCommandOption(MagickWeightOptions,MagickFalse,arg1);
+ if (weight == -1)
+ weight=StringToUnsignedLong(arg1);
+ _draw_info->weight=(size_t) weight;
break;
}
if (LocaleCompare("white-point",option+1) == 0)