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); }
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); }