public Task SaveTextureFlakes(string filename, Color color) {
     var image = new MagickImage(new MagickColor(color) { A = 250 }, 256, 256);
     image.AddNoise(NoiseType.Poisson, Channels.Alpha);
     return SaveAndDispose(filename, image);
 }
Beispiel #2
0
 private void ExecuteAddNoise(XmlElement element, MagickImage image)
 {
   Hashtable arguments = new Hashtable();
   foreach (XmlAttribute attribute in element.Attributes)
   {
     if (attribute.Name == "attenuate")
       arguments["attenuate"] = Variables.GetValue<double>(attribute);
     else if (attribute.Name == "channels")
       arguments["channels"] = Variables.GetValue<Channels>(attribute);
     else if (attribute.Name == "noiseType")
       arguments["noiseType"] = Variables.GetValue<NoiseType>(attribute);
   }
   if (OnlyContains(arguments, "noiseType"))
     image.AddNoise((NoiseType)arguments["noiseType"]);
   else if (OnlyContains(arguments, "noiseType", "attenuate"))
     image.AddNoise((NoiseType)arguments["noiseType"], (double)arguments["attenuate"]);
   else if (OnlyContains(arguments, "noiseType", "attenuate", "channels"))
     image.AddNoise((NoiseType)arguments["noiseType"], (double)arguments["attenuate"], (Channels)arguments["channels"]);
   else if (OnlyContains(arguments, "noiseType", "channels"))
     image.AddNoise((NoiseType)arguments["noiseType"], (Channels)arguments["channels"]);
   else
     throw new ArgumentException("Invalid argument combination for 'addNoise', allowed combinations are: [noiseType] [noiseType, attenuate] [noiseType, attenuate, channels] [noiseType, channels]");
 }
    public void Test_AddNoise()
    {
      MagickNET.SetRandomSeed(1337);

      using (MagickImage first = new MagickImage(Files.Builtin.Logo))
      {
        first.AddNoise(NoiseType.Laplacian);
        ColorAssert.AreNotEqual(MagickColors.White, first, 46, 62);

        using (MagickImage second = new MagickImage(Files.Builtin.Logo))
        {
          second.AddNoise(NoiseType.Laplacian, 2.0);
          ColorAssert.AreNotEqual(MagickColors.White, first, 46, 62);
          Assert.AreNotEqual(first, second);
        }
      }

      MagickNET.SetRandomSeed(-1);
    }