AnimalCrossingQR.AC.Palette.GetNearestColorIndex C# (CSharp) Method

GetNearestColorIndex() public method

public GetNearestColorIndex ( Color color ) : byte
color Color
return byte
        public byte GetNearestColorIndex(Color color)
        {
            return Colors
                .Select((c, i) => Tuple.Create(GetColorByCode(c), (byte)i))
                .Aggregate((a, b) => Color.DistanceSquared(a.Item1, color) < Color.DistanceSquared(b.Item1, color) ? a : b)
                .Item2;
        }

Usage Example

Beispiel #1
0
        private void LoadFromPixelData(byte[] data)
        {
            Title = "Untitled";
            Author = new User("Someone", "Nowhere", new byte[] { 0, 0, 0, 0, 0, 0 });
            Type = PatternType.Normal;

            Color[,] sourceImage = new Color[Width, Height];
            for (int i = 0; i < Width; i++)
                for (int j = 0; j < Height; j++)
                    sourceImage[i, j] = new Color(data[(j * Height + i) * 3 + 2], data[(j * Height + i) * 3 + 1], data[(j * Height + i) * 3 + 0]);

            HashSet<Color> bestPalette = CreateBestPalette(sourceImage);
            ColorPalette = new Palette();
            int k = 0;
            foreach (Color c in bestPalette)
                ColorPalette.SetColor(k++, c);

            for (int i = 0; i < Width; i++)
                for (int j = 0; j < Height; j++)
                    Data[i, j] = ColorPalette.GetNearestColorIndex(sourceImage[i, j]);
        }
All Usage Examples Of AnimalCrossingQR.AC.Palette::GetNearestColorIndex