MSIT.NGif.GifEncoder.FindClosest C# (CSharp) Метод

FindClosest() приватный Метод

private FindClosest ( Color c ) : int
c Color
Результат int
        private int FindClosest(Color c)
        {
            if (_colorTab == null) return -1;
            int r = c.R;
            int g = c.G;
            int b = c.B;
            int minpos = 0;
            int dmin = 256*256*256;
            int len = _colorTab.Length;
            for (int i = 0; i < len;) {
                int dr = r - (_colorTab[i++] & 0xff);
                int dg = g - (_colorTab[i++] & 0xff);
                int db = b - (_colorTab[i] & 0xff);
                int d = dr*dr + dg*dg + db*db;
                int index = i/3;
                if (_usedEntry[index] && (d < dmin)) {
                    dmin = d;
                    minpos = index;
                }
                i++;
            }
            return minpos;
        }