コード例 #1
0
ファイル: IPaletteMatcher.cs プロジェクト: ProtheanGod/KingMC
        LabColor RgbToLab(PaletteEntry cur)
        {
            LabColor lab = RgbToLab(cur.R, cur.G, cur.B);

            lab.Block = cur.Raw;
            return(lab);
        }
コード例 #2
0
        public byte BestMatch(byte R, byte G, byte B, out int position)
        {
            int minimum = int.MaxValue; position = 0;

            for (int i = 0; i < palette.Length; i++)
            {
                PaletteEntry pixel = palette[i];
                int          dist  = (R - pixel.R) * (R - pixel.R)
                                     + (G - pixel.G) * (G - pixel.G)
                                     + (B - pixel.B) * (B - pixel.B);

                if (dist < minimum)
                {
                    minimum = dist; position = i;
                }
            }
            return(palette[position].Block);
        }
コード例 #3
0
ファイル: IPaletteMatcher.cs プロジェクト: ProtheanGod/KingMC
        static int MinDist(byte R, byte G, byte B, PaletteEntry[] entries, out int pos)
        {
            int minDist = int.MaxValue; pos = 0;

            for (int i = 0; i < entries.Length; i++)
            {
                PaletteEntry entry = entries[i];

                int dist = (R - entry.R) * (R - entry.R)
                           + (G - entry.G) * (G - entry.G)
                           + (B - entry.B) * (B - entry.B);

                if (dist < minDist)
                {
                    minDist = dist; pos = i;
                }
            }
            return(minDist);
        }