public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var id1    = reader.ReadInt("imageId1");
            var id2    = reader.ReadInt("imageId2");

            reader.ExpectNoMoreArgs();

            if (id1 < 0 || id1 >= model.Images.NumImages)
            {
                throw new Exception("imageId1 out of range");
            }

            if (id2 < 0 || id2 >= model.Images.NumImages)
            {
                throw new Exception("imageId2 out of range");
            }

            var ssim = model.SSIM.GetStats(model.Images.Images[id1].Image, model.Images.Images[id2].Image,
                                           LayerMipmapRange.MostDetailed);

            Console.Error.Write("luminance:\t");
            Console.Out.WriteLine(ssim.Luminance);
            Console.Error.Write("contrast:\t");
            Console.Out.WriteLine(ssim.Contrast);
            Console.Error.Write("structure:\t");
            Console.Out.WriteLine(ssim.Structure);
            Console.Error.Write("ssim:\t\t");
            Console.Out.WriteLine(ssim.SSIM);
            Console.Error.Write("dssim:\t\t");
            Console.Out.WriteLine(ssim.DSSIM);
        }
Exemple #2
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var idx1   = reader.ReadInt("oldIndex");
            var idx2   = reader.ReadInt("newIndex");

            reader.ExpectNoMoreArgs();

            model.Images.MoveImage(idx1, idx2);
        }
Exemple #3
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var idx    = reader.ReadInt("index");

            reader.ExpectNoMoreArgs();

            var filter = model.Filter.Filter[idx];

            foreach (var fp in filter.Parameters)
            {
                Console.Out.Write($"{fp.GetBase().Name} ");
                switch (fp.GetParamterType())
                {
                case ParameterType.Float:
                    Console.Out.WriteLine(fp.GetFloatModel().Value);
                    break;

                case ParameterType.Int:
                    Console.Out.WriteLine(fp.GetIntModel().Value);
                    break;

                case ParameterType.Bool:
                    Console.Out.WriteLine(fp.GetBoolModel().Value);
                    break;
                }
            }

            foreach (var tp in filter.TextureParameters)
            {
                Console.Out.WriteLine($"{tp.Name}: (image) {tp.Source}");
            }

            Console.Out.WriteLine(); // signal params end
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var q      = reader.ReadInt("quality");

            reader.ExpectNoMoreArgs();

            model.Export.Quality = q;
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var mip    = reader.ReadInt("mipmap");

            reader.ExpectNoMoreArgs();

            export.Mipmap = mip;
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var layer  = reader.ReadInt("layer");

            reader.ExpectNoMoreArgs();

            export.Layer = layer;
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var x      = reader.ReadInt("x");
            var y      = reader.ReadInt("y");
            var layer  = reader.ReadInt("layer", 0);
            var mipmap = reader.ReadInt("mipmap", 0);
            var radius = reader.ReadInt("radius", 0);

            reader.ExpectNoMoreArgs();

            model.Apply();
            var color = model.GetPixelValue(model.Pipelines[0].Image, new Size3(x, y, 0), new LayerMipmapSlice(layer, mipmap), radius);

            Console.Out.WriteLine(color.ToDecimalString(true, 5));

            color = color.ToSrgb();
            Console.Out.WriteLine(color.ToBitString(true));
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var mip    = reader.ReadInt("mipmapIndex", 0);

            reader.ExpectNoMoreArgs();

            Console.Out.WriteLine(model.Images.GetWidth(mip));
            Console.Out.WriteLine(model.Images.GetHeight(mip));
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var idx    = reader.ReadInt("index");
            var name   = reader.ReadString("param name");

            foreach (var fp in model.Filter.Filter[idx].Parameters)
            {
                if (fp.GetBase().Name == name)
                {
                    switch (fp.GetParamterType())
                    {
                    case ParameterType.Float:
                        fp.GetFloatModel().Value = reader.ReadInt("value");
                        break;

                    case ParameterType.Int:
                        fp.GetIntModel().Value = reader.ReadInt("value");
                        break;

                    case ParameterType.Bool:
                        fp.GetBoolModel().Value = reader.ReadBool("value");
                        break;
                    }
                    reader.ExpectNoMoreArgs();
                    return;
                }
            }

            foreach (var tp in model.Filter.Filter[idx].TextureParameters)
            {
                if (tp.Name == name)
                {
                    tp.Source = reader.ReadInt("value");
                    reader.ExpectNoMoreArgs();
                    return;
                }
            }

            throw new Exception($"parameter {name} not found");
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var enable = reader.ReadBool("enabled");

            if (!reader.HasMoreArgs())
            {
                export.UseCropping = enable;
            }
            else
            {
                var xStart = reader.ReadInt("xStart");
                var yStart = reader.ReadInt("yStart");
                var xEnd   = reader.ReadInt("xEnd");
                var yEnd   = reader.ReadInt("yEnd");
                reader.ExpectNoMoreArgs();

                export.UseCropping = enable;
                export.CropStart   = new Size3(xStart, yStart, 0).ToCoords(model.Images.Size);
                export.CropEnd     = new Size3(xEnd, yEnd, 0).ToCoords(model.Images.Size);
            }
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var enable = reader.ReadBool("enabled");

            if (!reader.HasMoreArgs())
            {
                model.Export.UseCropping = enable;
            }
            else
            {
                var xStart = reader.ReadInt("xStart");
                var yStart = reader.ReadInt("yStart");
                var xEnd   = reader.ReadInt("xEnd");
                var yEnd   = reader.ReadInt("yEnd");
                reader.ExpectNoMoreArgs();

                model.Export.UseCropping = enable;
                model.Export.CropStartX  = xStart;
                model.Export.CropStartY  = yStart;
                model.Export.CropEndX    = xEnd;
                model.Export.CropEndY    = yEnd;
            }
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            if (reader.HasMoreArgs())
            {
                var idx = reader.ReadInt("index");
                reader.ExpectNoMoreArgs();

                model.Filter.DeleteFilter(idx);
            }
            else
            {
                // delete all
                model.Filter.SetFilter(new List <FilterModel>());
            }
        }
Exemple #13
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            if (reader.HasMoreArgs())
            {
                var idx = reader.ReadInt("image index");
                reader.ExpectNoMoreArgs();

                model.Images.DeleteImage(idx);
            }
            else
            {
                // TODO add clear method to images
                while (model.Images.NumImages != 0)
                {
                    model.Images.DeleteImage(0);
                }
            }
        }
Exemple #14
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var size   = reader.ReadInt("size");

            reader.ExpectNoMoreArgs();

            model.Apply();

            using (var tex = model.CreateThumbnail(size, model.Pipelines[0].Image))
            {
                var width  = tex.Size.Width;
                var heigth = tex.Size.Height;
                var bytes  = tex.GetBytes(0, 0, (uint)(width * heigth * 4));

                Console.Out.WriteLine(width);
                Console.Out.WriteLine(heigth);

                using (var stream = Console.OpenStandardOutput())
                {
                    stream.Write(bytes, 0, bytes.Length);
                }
            }
        }