Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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 mode   = reader.ReadEnum <StatMode>("min/max/avg", StatMode.avg);
            var type   = reader.ReadEnum <StatType>("luminance/luma/avg/lightness", StatType.avg);

            reader.ExpectNoMoreArgs();

            model.Apply();
            var stats = model.GetStatistics(model.Pipelines[0].Image);

            switch (type)
            {
            case StatType.luminance:
                Print(stats.Luminance, mode);
                break;

            case StatType.luma:
                Print(stats.Luma, mode);
                break;

            case StatType.avg:
                Print(stats.Average, mode);
                break;

            case StatType.lightness:
                Print(stats.Lightness, mode);
                break;

            default: throw new Exception("unknown type " + type);
            }
        }
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            reader.ExpectNoMoreArgs();

            Console.Out.WriteLine(model.Images.NumMipmaps);
        }
Ejemplo n.º 5
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            reader.ExpectNoMoreArgs();

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

            reader.ExpectNoMoreArgs();

            export.Layer = layer;
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
        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);

            reader.ExpectNoMoreArgs();

            if (model.Images.NumMipmaps > 1)
            {
                model.Images.DeleteMipmaps();
            }
        }
Ejemplo n.º 12
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            reader.ExpectNoMoreArgs();

            model.Apply();
            var stats = model.Stats.GetStatisticsFor(model.Pipelines[0].Image);

            Console.Out.WriteLine(stats.HasAlpha);
        }
        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");
        }
Ejemplo n.º 14
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);

            reader.ExpectNoMoreArgs();

            for (var index = 0; index < model.Filter.Filter.Count; index++)
            {
                var filterModel = model.Filter.Filter[index];
                Console.Out.WriteLine($"{index}: {filterModel.Name}");
                Console.Out.WriteLine(filterModel.Description);
            }
        }
Ejemplo n.º 15
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader   = new ParameterReader(arguments);
            var color    = reader.ReadString("image equation");
            var hasAlpha = reader.HasMoreArgs();
            var alpha    = reader.ReadString("alpha equation", "");

            reader.ExpectNoMoreArgs();

            model.Pipelines[0].Color.Formula = color;
            if (hasAlpha)
            {
                model.Pipelines[0].Alpha.Formula = alpha;
            }
        }
        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>());
            }
        }
Ejemplo n.º 17
0
        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));
        }
Ejemplo n.º 18
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);
                }
            }
        }
Ejemplo n.º 19
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader   = new ParameterReader(arguments);
            var filename = reader.ReadString("filename");
            var format   = reader.ReadEnum <GliFormat>("gliFormat");

            reader.ExpectNoMoreArgs();

            // split filename
            var splitIdx = filename.LastIndexOf('.');

            if (splitIdx < 0)
            {
                throw new Exception($"{filename} missing file extension");
            }

            var leftFile  = filename.Substring(0, splitIdx);
            var rightFile = filename.Substring(splitIdx + 1);

            model.ExportPipelineImage(leftFile, rightFile, format);
        }
Ejemplo n.º 20
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader   = new ParameterReader(arguments);
            var filename = reader.ReadString("filename");
            var format   = reader.ReadEnum <GliFormat>("gliFormat");

            reader.ExpectNoMoreArgs();

            // split filename
            var splitIdx = filename.LastIndexOf('.');

            if (splitIdx < 0)
            {
                throw new Exception($"{filename} missing file extension");
            }

            var leftFile  = filename.Substring(0, splitIdx);
            var rightFile = filename.Substring(splitIdx + 1);

            if (!model.Pipelines[0].IsValid)
            {
                throw new Exception("image formula is invalid.");
            }

            // apply changes before exporting
            model.Apply();
            var desc = new ExportDescription(model.Pipelines[0].Image, leftFile, rightFile)
            {
                FileFormat  = format,
                UseCropping = UseCropping,
                CropStart   = CropStart,
                CropEnd     = CropEnd,
                Quality     = Quality,
                Layer       = Layer,
                Mipmap      = Mipmap
            };

            model.Export.Export(desc);
        }
        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);
            }
        }
Ejemplo n.º 22
0
        public override void Execute(List <string> arguments, Models model)
        {
            var reader = new ParameterReader(arguments);
            var ext    = reader.ReadString("file extension");

            reader.ExpectNoMoreArgs();

            foreach (var exportFormatModel in model.Export.Formats)
            {
                if (exportFormatModel.Extension == ext)
                {
                    foreach (var gliFormat in exportFormatModel.Formats)
                    {
                        Console.Out.WriteLine(gliFormat.ToString());
                    }

                    Console.Out.WriteLine(); // signal params end
                    return;
                }
            }

            throw new Exception("could not find extension " + ext);
        }
Ejemplo n.º 23
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);
                }
            }
        }
Ejemplo n.º 24
0
        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;
            }
        }