public RendererModel(Image <Rgba32> input, ParametersModel parameters) { input.Resize(parameters.CanvasResize); double aspect = input.Width / (double)input.Height; if (aspect >= 1) { Width = parameters.RenderSize; Height = (int)(parameters.RenderSize / aspect); Scale = parameters.RenderSize / (double)input.Width; } else { Width = (int)(parameters.RenderSize * aspect); Height = parameters.RenderSize; Scale = parameters.RenderSize / (double)input.Height; } Nprimitives = parameters.Nprimitives; Mode = parameters.Mode; Alpha = parameters.Alpha; Repeat = parameters.Repeat; Background = parameters.Background; ShapeProbeCount = parameters.ShapeProbeCount; ShapeAge = parameters.ShapeAge; Input = input;//.Clone(); Current = Core.UniformImage(input.Width, input.Height, Background); Result = Core.UniformImage(Width, Height, Background); Score = Core.DifferenceFull(Input, Current); Shapes = new List <IShape>(); Colors = new List <Rgba32>(); Scores = new List <double>(); Workers = new List <WorkerModel>(); for (int i = 0; i < parameters.WorkersCount; i++) { var worker = new WorkerModel(Input); Workers.Add(worker); } }
public RendererModel(byte[] inputImage, ParametersModel parameters) : this(Image.Load(inputImage), parameters) { }