private bool makecmap()
{
int nsamples = 8 / bitspersample;
PALmap = new int[256][];
for (int i = 0; i < 256; i++)
PALmap[i] = new int[nsamples];
for (int i = 0; i < 256; i++)
{
int j = 0;
switch (bitspersample)
{
case 1:
CMAP(i >> 7, i, ref j);
CMAP((i >> 6) & 1, i, ref j);
CMAP((i >> 5) & 1, i, ref j);
CMAP((i >> 4) & 1, i, ref j);
CMAP((i >> 3) & 1, i, ref j);
CMAP((i >> 2) & 1, i, ref j);
CMAP((i >> 1) & 1, i, ref j);
CMAP(i & 1, i, ref j);
break;
case 2:
CMAP(i >> 6, i, ref j);
CMAP((i >> 4) & 3, i, ref j);
CMAP((i >> 2) & 3, i, ref j);
CMAP(i & 3, i, ref j);
break;
case 4:
CMAP(i >> 4, i, ref j);
CMAP(i & 0xf, i, ref j);
break;
case 8:
CMAP(i, i, ref j);
break;
}
}
return true;
}