pIn -= 3 * bprIn;
pIn -= (3 * bprIn) - padIn;
void    ShrinkColorBitMap(PRUint8* inBuf, PBITMAPINFO2 pBMInfo, PRUint8* outBuf){  PRUint32  bprIn = ALIGNEDBPR(pBMInfo->cx, pBMInfo->cBitCount);  PRUint8*  pIn   = inBuf + (pBMInfo->cy - 1) * bprIn;  PRUint8*  pOut  = outBuf;  PRGB2 	pColorTable = &pBMInfo->argbColor[0];  if (pBMInfo->cBitCount == 4) {    for (PRUint32 row = pBMInfo->cy; row > 0; row -= 2) {      for (PRUint32 ndx = 0; ndx < bprIn; ndx++, pIn++) {        pOut = 3 + (PRUint8*)memcpy( pOut, &pColorTable[FIRSTPEL(*pIn)], 3);      }      pIn -= 3 * bprIn;    }  }  else  if (pBMInfo->cBitCount == 8) {    for (PRUint32 row = pBMInfo->cy; row > 0; row -= 2) {      for (PRUint32 ndx = 0; ndx < bprIn; ndx += 2, pIn += 2) {        pOut = 3 + (PRUint8*)memcpy( pOut, &pColorTable[*pIn], 3);      }      pIn -= 3 * bprIn;    }  }  else  if (pBMInfo->cBitCount == 24) {    for (PRUint32 row = pBMInfo->cy; row > 0; row -= 2) {      for (PRUint32 ndx = 0; ndx < bprIn; ndx += 6, pIn += 3) {        pOut = 3 + (PRUint8*)memcpy( pOut, pIn, 3);        pIn += 3;      }      pIn -= 3 * bprIn;    }  }  return;}