Support color compliance for TXT format (e.g. -define txt:compliance=css)
diff --git a/MagickCore/color.h b/MagickCore/color.h
index 4bc01ad..36461eb 100644
--- a/MagickCore/color.h
+++ b/MagickCore/color.h
@@ -29,6 +29,7 @@
{
UndefinedCompliance,
NoCompliance = 0x0000,
+ CSSCompliance = 0x0001,
SVGCompliance = 0x0001,
X11Compliance = 0x0002,
XPMCompliance = 0x0004,
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 9c2d8b9..cecf508 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -183,6 +183,56 @@
{ "UserSpaceOnUse", UserSpaceOnUse, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedPathUnits, UndefinedOptionFlag, MagickFalse }
},
+ ColorspaceOptions[] =
+ {
+ { "Undefined", UndefinedColorspace, UndefinedOptionFlag, MagickTrue },
+ { "CIELab", LabColorspace, UndefinedOptionFlag, MagickFalse },
+ { "CMY", CMYColorspace, UndefinedOptionFlag, MagickFalse },
+ { "CMYK", CMYKColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Gray", GRAYColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HCL", HCLColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HCLp", HCLpColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HSB", HSBColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HSI", HSIColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HSL", HSLColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HSV", HSVColorspace, UndefinedOptionFlag, MagickFalse },
+ { "HWB", HWBColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Lab", LabColorspace, UndefinedOptionFlag, MagickFalse },
+ { "LCH", LCHColorspace, UndefinedOptionFlag, MagickFalse },
+ { "LCHab", LCHabColorspace, UndefinedOptionFlag, MagickFalse },
+ { "LCHuv", LCHuvColorspace, UndefinedOptionFlag, MagickFalse },
+ { "LMS", LMSColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Log", LogColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Luv", LuvColorspace, UndefinedOptionFlag, MagickFalse },
+ { "OHTA", OHTAColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Rec601YCbCr", Rec601YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Rec709YCbCr", Rec709YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "RGB", RGBColorspace, UndefinedOptionFlag, MagickFalse },
+ { "scRGB", scRGBColorspace, UndefinedOptionFlag, MagickFalse },
+ { "sRGB", sRGBColorspace, UndefinedOptionFlag, MagickFalse },
+ { "Transparent", TransparentColorspace, UndefinedOptionFlag, MagickFalse },
+ { "xyY", xyYColorspace, UndefinedOptionFlag, MagickFalse },
+ { "XYZ", XYZColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YCbCr", YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YDbDr", YDbDrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YCC", YCCColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YIQ", YIQColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YPbPr", YPbPrColorspace, UndefinedOptionFlag, MagickFalse },
+ { "YUV", YUVColorspace, UndefinedOptionFlag, MagickFalse },
+ { (char *) NULL, UndefinedColorspace, UndefinedOptionFlag, MagickFalse }
+ },
+ ComplexOptions[] =
+ {
+ { "Undefined", UndefinedComplexOperator, UndefinedOptionFlag, MagickTrue },
+ { "Add", AddComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "Conjugate", ConjugateComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "Divide", DivideComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "MagnitudePhase", MagnitudePhaseComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "Multiply", MultiplyComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "RealImaginary", RealImaginaryComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { "Subtract", SubtractComplexOperator, UndefinedOptionFlag, MagickFalse },
+ { (char *) NULL, UndefinedComplexOperator, UndefinedOptionFlag, MagickFalse }
+ },
CommandOptions[] =
{
/*
@@ -794,6 +844,16 @@
{ "-write-mask", 1L, SimpleOperatorFlag | NeverInterpretArgsFlag, MagickFalse },
{ (char *) NULL, 0L, UndefinedOptionFlag, MagickFalse }
},
+ ComplianceOptions[] =
+ {
+ { "Undefined", UndefinedCompliance, UndefinedOptionFlag, MagickTrue },
+ { "CSS", CSSCompliance, UndefinedOptionFlag, MagickFalse },
+ { "No", NoCompliance, UndefinedOptionFlag, MagickFalse },
+ { "SVG", SVGCompliance, UndefinedOptionFlag, MagickFalse },
+ { "X11", X11Compliance, UndefinedOptionFlag, MagickFalse },
+ { "XPM", XPMCompliance, UndefinedOptionFlag, MagickFalse },
+ { (char *) NULL, UndefinedClass, UndefinedOptionFlag, MagickFalse }
+ },
ComposeOptions[] =
{
{ "Undefined", UndefinedCompositeOp, UndefinedOptionFlag, MagickTrue },
@@ -901,56 +961,6 @@
{ "ZipS", ZipSCompression, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedCompression, UndefinedOptionFlag, MagickFalse }
},
- ColorspaceOptions[] =
- {
- { "Undefined", UndefinedColorspace, UndefinedOptionFlag, MagickTrue },
- { "CIELab", LabColorspace, UndefinedOptionFlag, MagickFalse },
- { "CMY", CMYColorspace, UndefinedOptionFlag, MagickFalse },
- { "CMYK", CMYKColorspace, UndefinedOptionFlag, MagickFalse },
- { "Gray", GRAYColorspace, UndefinedOptionFlag, MagickFalse },
- { "HCL", HCLColorspace, UndefinedOptionFlag, MagickFalse },
- { "HCLp", HCLpColorspace, UndefinedOptionFlag, MagickFalse },
- { "HSB", HSBColorspace, UndefinedOptionFlag, MagickFalse },
- { "HSI", HSIColorspace, UndefinedOptionFlag, MagickFalse },
- { "HSL", HSLColorspace, UndefinedOptionFlag, MagickFalse },
- { "HSV", HSVColorspace, UndefinedOptionFlag, MagickFalse },
- { "HWB", HWBColorspace, UndefinedOptionFlag, MagickFalse },
- { "Lab", LabColorspace, UndefinedOptionFlag, MagickFalse },
- { "LCH", LCHColorspace, UndefinedOptionFlag, MagickFalse },
- { "LCHab", LCHabColorspace, UndefinedOptionFlag, MagickFalse },
- { "LCHuv", LCHuvColorspace, UndefinedOptionFlag, MagickFalse },
- { "LMS", LMSColorspace, UndefinedOptionFlag, MagickFalse },
- { "Log", LogColorspace, UndefinedOptionFlag, MagickFalse },
- { "Luv", LuvColorspace, UndefinedOptionFlag, MagickFalse },
- { "OHTA", OHTAColorspace, UndefinedOptionFlag, MagickFalse },
- { "Rec601YCbCr", Rec601YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
- { "Rec709YCbCr", Rec709YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
- { "RGB", RGBColorspace, UndefinedOptionFlag, MagickFalse },
- { "scRGB", scRGBColorspace, UndefinedOptionFlag, MagickFalse },
- { "sRGB", sRGBColorspace, UndefinedOptionFlag, MagickFalse },
- { "Transparent", TransparentColorspace, UndefinedOptionFlag, MagickFalse },
- { "xyY", xyYColorspace, UndefinedOptionFlag, MagickFalse },
- { "XYZ", XYZColorspace, UndefinedOptionFlag, MagickFalse },
- { "YCbCr", YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
- { "YDbDr", YDbDrColorspace, UndefinedOptionFlag, MagickFalse },
- { "YCC", YCCColorspace, UndefinedOptionFlag, MagickFalse },
- { "YIQ", YIQColorspace, UndefinedOptionFlag, MagickFalse },
- { "YPbPr", YPbPrColorspace, UndefinedOptionFlag, MagickFalse },
- { "YUV", YUVColorspace, UndefinedOptionFlag, MagickFalse },
- { (char *) NULL, UndefinedColorspace, UndefinedOptionFlag, MagickFalse }
- },
- ComplexOptions[] =
- {
- { "Undefined", UndefinedComplexOperator, UndefinedOptionFlag, MagickTrue },
- { "Add", AddComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "Conjugate", ConjugateComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "Divide", DivideComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "MagnitudePhase", MagnitudePhaseComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "Multiply", MultiplyComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "RealImaginary", RealImaginaryComplexOperator, UndefinedOptionFlag, MagickFalse },
- { "Subtract", SubtractComplexOperator, UndefinedOptionFlag, MagickFalse },
- { (char *) NULL, UndefinedComplexOperator, UndefinedOptionFlag, MagickFalse }
- },
DataTypeOptions[] =
{
{ "Undefined", UndefinedData, UndefinedOptionFlag, MagickTrue },
@@ -1275,6 +1285,7 @@
{ "Color", MagickColorOptions, UndefinedOptionFlag, MagickFalse },
{ "Colorspace", MagickColorspaceOptions, UndefinedOptionFlag, MagickFalse },
{ "Command", MagickCommandOptions, UndefinedOptionFlag, MagickFalse },
+ { "Compliance", MagickComplianceOptions, UndefinedOptionFlag, MagickFalse },
{ "Complex", MagickComplexOptions, UndefinedOptionFlag, MagickFalse },
{ "Compose", MagickComposeOptions, UndefinedOptionFlag, MagickFalse },
{ "Compress", MagickCompressOptions, UndefinedOptionFlag, MagickFalse },
@@ -2023,6 +2034,7 @@
case MagickClipPathOptions: return(ClipPathOptions);
case MagickColorspaceOptions: return(ColorspaceOptions);
case MagickCommandOptions: return(CommandOptions);
+ case MagickComplianceOptions: return(ComplianceOptions);
case MagickComplexOptions: return(ComplexOptions);
case MagickComposeOptions: return(ComposeOptions);
case MagickCompressOptions: return(CompressOptions);
diff --git a/MagickCore/option.h b/MagickCore/option.h
index 24d7df5..764fa7d 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -37,6 +37,7 @@
MagickColorspaceOptions,
MagickCommandOptions,
MagickComplexOptions,
+ MagickComplianceOptions,
MagickComposeOptions,
MagickCompressOptions,
MagickConfigureOptions,
diff --git a/coders/txt.c b/coders/txt.c
index 8ee342f..c164a44 100644
--- a/coders/txt.c
+++ b/coders/txt.c
@@ -712,6 +712,9 @@
ComplianceType
compliance;
+ const char
+ *value;
+
(void) CopyMagickString(colorspace,CommandOptionToMnemonic(
MagickColorspaceOptions,(ssize_t) image->colorspace),MagickPathExtent);
LocaleLower(colorspace);
@@ -719,6 +722,10 @@
if (image->alpha_trait != UndefinedPixelTrait)
(void) ConcatenateMagickString(colorspace,"a",MagickPathExtent);
compliance=NoCompliance;
+ value=GetImageOption(image_info,"txt:compliance");
+ if (value != (char *) NULL)
+ compliance=(ComplianceType) ParseCommandOption(MagickComplianceOptions,
+ MagickFalse,value);
if (LocaleCompare(image_info->magick,"SPARSE-COLOR") != 0)
{
(void) FormatLocaleString(buffer,MagickPathExtent,
@@ -726,7 +733,6 @@
image->columns,(double) image->rows,(double) ((MagickOffsetType)
GetQuantumRange(image->depth)),colorspace);
(void) WriteBlobString(image,buffer);
- compliance=SVGCompliance;
}
GetPixelInfo(image,&pixel);
for (y=0; y < (ssize_t) image->rows; y++)