private IMagickImage ExecuteMap(XmlElement element, IMagickImageCollection collection) { Hashtable arguments = new Hashtable(); foreach (XmlElement elem in element.SelectNodes("*")) { if (elem.Name == "image") { arguments["image"] = CreateMagickImage(elem); } else if (elem.Name == "settings") { arguments["settings"] = CreateQuantizeSettings(elem); } } if (OnlyContains(arguments, "image")) { collection.Map((IMagickImage)arguments["image"]); return(null); } else if (OnlyContains(arguments, "image", "settings")) { collection.Map((IMagickImage)arguments["image"], (QuantizeSettings)arguments["settings"]); return(null); } else { throw new ArgumentException("Invalid argument combination for 'map', allowed combinations are: [image] [image, settings]"); } }