public string Execute(FileItem item, string infile, string dest, ValuePairEnumerator configData) { var conf = new EffectViewModel(configData); dest = Path.Combine(Path.GetDirectoryName(dest), Path.GetFileNameWithoutExtension(dest) + ".jpg"); using (MagickImage image = new MagickImage(infile)) { switch (conf.SelectedMode) { case 0: image.SepiaTone(new Percentage(conf.Param1)); break; case 1: image.OilPaint(conf.Param1,0.1); break; case 2: image.Sketch(); break; case 3: image.Charcoal(); break; case 4: image.Solarize(); break; case 5: image.Swirl(conf.Param1); break; case 6: image.Wave(PixelInterpolateMethod.Bilinear, conf.Param1, conf.Param2); break; case 7: image.BlueShift(); break; case 8: image.RotationalBlur(conf.Param1); break; case 9: image.Raise(conf.Param1); break; case 10: image.Negate(); break; case 11: image.ColorSpace = ColorSpace.Gray; break; } image.Format = MagickFormat.Jpeg; image.Write(dest); } return dest; }
private void ExecuteRotationalBlur(XmlElement element, MagickImage image) { Hashtable arguments = new Hashtable(); foreach (XmlAttribute attribute in element.Attributes) { if (attribute.Name == "angle") arguments["angle"] = Variables.GetValue<double>(attribute); else if (attribute.Name == "channels") arguments["channels"] = Variables.GetValue<Channels>(attribute); } if (OnlyContains(arguments, "angle")) image.RotationalBlur((double)arguments["angle"]); else if (OnlyContains(arguments, "angle", "channels")) image.RotationalBlur((double)arguments["angle"], (Channels)arguments["channels"]); else throw new ArgumentException("Invalid argument combination for 'rotationalBlur', allowed combinations are: [angle] [angle, channels]"); }
public void Test_RotationalBlur() { using (MagickImage image = new MagickImage(Files.TestPNG)) { image.RotationalBlur(20); #if Q8 ColorAssert.AreEqual(new MagickColor("#fbfbfb2b"), image, 10, 10); ColorAssert.AreEqual(new MagickColor("#8b0303"), image, 13, 67); ColorAssert.AreEqual(new MagickColor(OpenCLValue.Get("#167516", "#167616")), image, 63, 67); ColorAssert.AreEqual(new MagickColor("#3131fc"), image, 125, 67); #elif Q16 || Q16HDRI ColorAssert.AreEqual(new MagickColor("#fbf7fbf7fbf72aab"), image, 10, 10); ColorAssert.AreEqual(new MagickColor("#8b2102990299"), image, 13, 67); ColorAssert.AreEqual(new MagickColor("#159275F21592"), image, 63, 67); ColorAssert.AreEqual(new MagickColor("#31853185fd47"), image, 125, 67); #else #error Not implemented! #endif } using (MagickImage image = new MagickImage(Files.TestPNG)) { image.RotationalBlur(20, Channels.RGB); #if Q8 ColorAssert.AreEqual(new MagickColor("#fbfbfb80"), image, 10, 10); ColorAssert.AreEqual(new MagickColor("#8b0303"), image, 13, 67); ColorAssert.AreEqual(new MagickColor(OpenCLValue.Get("#167516", "#167616")), image, 63, 67); ColorAssert.AreEqual(new MagickColor("#3131fc"), image, 125, 67); #elif Q16 || Q16HDRI ColorAssert.AreEqual(new MagickColor("#fbf7fbf7fbf78000"), image, 10, 10); ColorAssert.AreEqual(new MagickColor("#8b2102990299"), image, 13, 67); ColorAssert.AreEqual(new MagickColor("#159275f21592"), image, 63, 67); ColorAssert.AreEqual(new MagickColor("#31853185fd47"), image, 125, 67); #else #error Not implemented! #endif } }