public string Execute(FileItem item, string infile, string dest, ValuePairEnumerator configData) { var conf = new EnhanceViewModel(configData); dest = Path.Combine(Path.GetDirectoryName(dest), Path.GetFileNameWithoutExtension(dest) + ".jpg"); using (MagickImage image = new MagickImage(infile)) { if (conf.Normalize) image.Normalize(); if (conf.AutoGamma) image.AutoGamma(); image.BrightnessContrast(new Percentage(conf.Brightness), new Percentage(conf.Contrast)); if (conf.SContrast > 0) image.SigmoidalContrast(true, conf.SContrast); if (conf.Edge) image.AdaptiveSharpen(); if (conf.Sharpen > 0) image.UnsharpMask(1.5, 1.5, conf.Sharpen/100.0, 0.2); image.Format = MagickFormat.Jpeg; image.Write(dest); } return dest; }
private void ExecuteAdaptiveSharpen(XmlElement element, MagickImage image) { Hashtable arguments = new Hashtable(); foreach (XmlAttribute attribute in element.Attributes) { if (attribute.Name == "channels") arguments["channels"] = Variables.GetValue<Channels>(attribute); else if (attribute.Name == "radius") arguments["radius"] = Variables.GetValue<double>(attribute); else if (attribute.Name == "sigma") arguments["sigma"] = Variables.GetValue<double>(attribute); } if (arguments.Count == 0) image.AdaptiveSharpen(); else if (OnlyContains(arguments, "channels")) image.AdaptiveSharpen((Channels)arguments["channels"]); else if (OnlyContains(arguments, "radius", "sigma")) image.AdaptiveSharpen((double)arguments["radius"], (double)arguments["sigma"]); else if (OnlyContains(arguments, "radius", "sigma", "channels")) image.AdaptiveSharpen((double)arguments["radius"], (double)arguments["sigma"], (Channels)arguments["channels"]); else throw new ArgumentException("Invalid argument combination for 'adaptiveSharpen', allowed combinations are: [] [channels] [radius, sigma] [radius, sigma, channels]"); }
public void Test_AdaptiveSharpen() { using (MagickImage image = new MagickImage(Files.MagickNETIconPNG)) { image.AdaptiveSharpen(10, 10); #if Q8 || Q16 ColorAssert.AreEqual(new MagickColor("#a985e09ff96a"), image, 56, 68); #elif Q16HDRI ColorAssert.AreEqual(new MagickColor("#a8a8dfdff8f8"), image, 56, 68); #else #error Not implemented! #endif } }