Exemplo n.º 1
0
 public Swatches(PaletteBuilder palette)
 {
     ClearColor = palette.Add(0x111111, 0x111111, 0x111111);
     Player     = palette.Add(0xcccccc, 0x222222, 0xcc0000);
     Bullet     = palette.Add(0xcc4444, 0x992222, 0xff0000);
     White      = palette.Add(0xffffff, 0xffffff, 0xffffff);
 }
Exemplo n.º 2
0
    static Palette BuildPalette(CommandLine options)
    {
        Palette basePalette = null;

        if (!string.IsNullOrEmpty(options.BasePath))
        {
            basePalette = LoadPalette(options.BasePath);
        }

        var context = new MLContext();
        var builder = new PaletteBuilder(context);

        Console.Write("Loading");
        foreach (var directory in options.Directories)
        {
            foreach (var file in Directory.EnumerateFiles(directory, "*.png", SearchOption.AllDirectories))
            {
                using var stream = File.OpenRead(file);
                var image = Image.Load <Rgba32>(stream);
                if (!image.TryGetSinglePixelSpan(out var pixelSpan))
                {
                    Console.WriteLine($"Could not read pixels from {file}");
                    continue;
                }

                builder.Add(pixelSpan);
                Console.Write('.');
            }
        }
        Console.WriteLine();
        Console.WriteLine();

        if (basePalette != null)
        {
            builder.RemoveBaseColours(basePalette.Colours, 10.0f / 255);
        }

        var palette = builder.Build(options.PaletteSize, options.Offset);

        Console.WriteLine();

        if (basePalette != null)
        {
            for (int i = 0, j = options.BaseOffset; i < basePalette.Size; i++, j++)
            {
                palette.Colours[j] = basePalette.Colours[i];
            }
        }

        return(palette);
    }
Exemplo n.º 3
0
        public Swatches(PaletteBuilder palette)
        {
            palette.Add(0x0000FC, 0x0078F8, 0x3CBCFC);
            palette.Add(0x940084, 0xD800CC, 0xF878F8);
            palette.Add(0xA81000, 0xF83800, 0xF87858);
            palette.Add(0x503000, 0xAC7C00, 0xF8B800);
            palette.Add(0x007800, 0x00B800, 0xB8F818);

            var rainbow = new[] {
                0x0000FC, 0x0078F8, 0x3CBCFC,
                0x940084, 0xD800CC, 0xF878F8,
                0xA81000, 0xF83800, 0xF87858,
                0x503000, 0xAC7C00, 0xF8B800,
                0x007800, 0x00B800, 0xB8F818
            };

            foreach (var clr in rainbow)
            {
                palette.Add(clr, clr, clr);
            }
        }