AnimalCrossingQR.AC.Pattern.LoadFromPixelData C# (CSharp) Method

LoadFromPixelData() private method

private LoadFromPixelData ( byte data ) : void
data byte
return void
        private void LoadFromPixelData(byte[] data)
        {
            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) * 4 + 2],
                        data[(j * Height + i) * 4 + 1],
                        data[(j * Height + i) * 4 + 0],
                        data[(j * Height + i) * 4 + 3]);

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