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); }
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); }
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); } }