Exemple #1
0
        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);
            }
        }
Exemple #2
0
 public RendererModel(byte[] inputImage, ParametersModel parameters) : this(Image.Load(inputImage), parameters)
 {
 }