Пример #1
0
 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;
 }
Пример #2
0
 private void ExecuteBrightnessContrast(XmlElement element, MagickImage image)
 {
   Hashtable arguments = new Hashtable();
   foreach (XmlAttribute attribute in element.Attributes)
   {
     if (attribute.Name == "brightness")
       arguments["brightness"] = Variables.GetValue<Percentage>(attribute);
     else if (attribute.Name == "channels")
       arguments["channels"] = Variables.GetValue<Channels>(attribute);
     else if (attribute.Name == "contrast")
       arguments["contrast"] = Variables.GetValue<Percentage>(attribute);
   }
   if (OnlyContains(arguments, "brightness", "contrast"))
     image.BrightnessContrast((Percentage)arguments["brightness"], (Percentage)arguments["contrast"]);
   else if (OnlyContains(arguments, "brightness", "contrast", "channels"))
     image.BrightnessContrast((Percentage)arguments["brightness"], (Percentage)arguments["contrast"], (Channels)arguments["channels"]);
   else
     throw new ArgumentException("Invalid argument combination for 'brightnessContrast', allowed combinations are: [brightness, contrast] [brightness, contrast, channels]");
 }
Пример #3
0
        public bool OverrideTextureMaps(string textureName, double reflection, double blur, double specular) {
            using (var image = new MagickImage(Kn5.TexturesData[textureName])) {
                if (image.Width > 512 || image.Height > 512) {
                    image.Resize(512, 512);
                }

                image.BrightnessContrast(reflection, 1d, Channels.Red);
                image.BrightnessContrast(blur, 1d, Channels.Green);
                image.BrightnessContrast(specular, 1d, Channels.Blue);

                return OverrideTexture(textureName, image.ToByteArray(MagickFormat.Bmp));
            }
        }
Пример #4
0
 public static void threshold(string image_path, string output_path, int brightness = 20, int contrast = 20, int posterize = 2)
 {
     using (MagickImage image = new MagickImage(image_path)) {
         image.BrightnessContrast(brightness, contrast);
         image.ColorSpace = ColorSpace.Gray;
         image.Posterize(posterize);
         image.Normalize();
         image.Write(output_path);
     }
 }
Пример #5
0
 public void Test_BrightnessContrast()
 {
   using (MagickImage image = new MagickImage(Files.Builtin.Wizard))
   {
     ColorAssert.AreNotEqual(MagickColors.White, image, 340, 295);
     image.BrightnessContrast(new Percentage(50), new Percentage(50));
     image.Clamp();
     ColorAssert.AreEqual(MagickColors.White, image, 340, 295);
   }
 }