protected override IMAGE32 Evaluate() { var size = new SixLabors.Primitives.Size(Width, Height); var result = new IMAGE32(size.Width, size.Height); using (var target = new IMAGE32(size.Width, size.Height)) { var substrate = Epsylon.ImageSharp.Procedural.Processing.Substrate.Create(target, RandomSeed.GetRandomSeedHash(), Palette); for (int i = 0; i < Iterations; ++i) { this.SetProgressPercent(i * 100 / Iterations); substrate.DrawStep(); } result.Mutate ( dc => { dc.Fill(Rgba32.White); dc.DrawImage(target, 1); } ); return(result); } }