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++)