private void ExecuteLevel(XmlElement element, MagickImage image)
{
Hashtable arguments = new Hashtable();
foreach (XmlAttribute attribute in element.Attributes)
{
if (attribute.Name == "blackPoint")
arguments["blackPoint"] = Variables.GetValue<QuantumType>(attribute);
else if (attribute.Name == "blackPointPercentage")
arguments["blackPointPercentage"] = Variables.GetValue<Percentage>(attribute);
else if (attribute.Name == "channels")
arguments["channels"] = Variables.GetValue<Channels>(attribute);
else if (attribute.Name == "gamma")
arguments["gamma"] = Variables.GetValue<double>(attribute);
else if (attribute.Name == "whitePoint")
arguments["whitePoint"] = Variables.GetValue<QuantumType>(attribute);
else if (attribute.Name == "whitePointPercentage")
arguments["whitePointPercentage"] = Variables.GetValue<Percentage>(attribute);
}
if (OnlyContains(arguments, "blackPoint", "whitePoint"))
image.Level((QuantumType)arguments["blackPoint"], (QuantumType)arguments["whitePoint"]);
else if (OnlyContains(arguments, "blackPoint", "whitePoint", "channels"))
image.Level((QuantumType)arguments["blackPoint"], (QuantumType)arguments["whitePoint"], (Channels)arguments["channels"]);
else if (OnlyContains(arguments, "blackPoint", "whitePoint", "gamma"))
image.Level((QuantumType)arguments["blackPoint"], (QuantumType)arguments["whitePoint"], (double)arguments["gamma"]);
else if (OnlyContains(arguments, "blackPoint", "whitePoint", "gamma", "channels"))
image.Level((QuantumType)arguments["blackPoint"], (QuantumType)arguments["whitePoint"], (double)arguments["gamma"], (Channels)arguments["channels"]);
else if (OnlyContains(arguments, "blackPointPercentage", "whitePointPercentage"))
image.Level((Percentage)arguments["blackPointPercentage"], (Percentage)arguments["whitePointPercentage"]);
else if (OnlyContains(arguments, "blackPointPercentage", "whitePointPercentage", "channels"))
image.Level((Percentage)arguments["blackPointPercentage"], (Percentage)arguments["whitePointPercentage"], (Channels)arguments["channels"]);
else if (OnlyContains(arguments, "blackPointPercentage", "whitePointPercentage", "gamma"))
image.Level((Percentage)arguments["blackPointPercentage"], (Percentage)arguments["whitePointPercentage"], (double)arguments["gamma"]);
else if (OnlyContains(arguments, "blackPointPercentage", "whitePointPercentage", "gamma", "channels"))
image.Level((Percentage)arguments["blackPointPercentage"], (Percentage)arguments["whitePointPercentage"], (double)arguments["gamma"], (Channels)arguments["channels"]);
else
throw new ArgumentException("Invalid argument combination for 'level', allowed combinations are: [blackPoint, whitePoint] [blackPoint, whitePoint, channels] [blackPoint, whitePoint, gamma] [blackPoint, whitePoint, gamma, channels] [blackPointPercentage, whitePointPercentage] [blackPointPercentage, whitePointPercentage, channels] [blackPointPercentage, whitePointPercentage, gamma] [blackPointPercentage, whitePointPercentage, gamma, channels]");
}
private void ExecuteLevelColors(XmlElement element, MagickImage image)