public void fill16Bit(final int[] target, final InputStream in, final GDIPalette pal)
      throws IOException {
    final int noOfBytes = target.length * 2;
    if (isTopDown() == false) {
      for (int i = noOfBytes - 1; i >= 0; i--) {
        final int iByte = in.read();
        if (iByte == -1) {
          return;
        }
        final int iByte2 = in.read();
        if (iByte2 == -1) {
          return;
        }

        target[i] = pal.lookupColor((iByte2 << 8) + iByte);
      }
    } else {
      for (int i = 0; i < noOfBytes; i++) {
        final int iByte = in.read();
        if (iByte == -1) {
          return;
        }
        final int iByte2 = in.read();
        if (iByte2 == -1) {
          return;
        }

        target[i] = pal.lookupColor((iByte2 << 8) + iByte);
      }
    }
  }
 public void fill32Bit(final int[] target, final InputStream in, final GDIPalette pal)
     throws IOException {
   final int noOfBytes = target.length * 4;
   if (isTopDown() == false) {
     for (int i = noOfBytes - 1; i >= 0; i--) {
       target[i] = pal.lookupColor(readInt(in));
     }
   } else {
     for (int i = 0; i < noOfBytes; i++) {
       target[i] = pal.lookupColor(readInt(in));
     }
   }
 }