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