private static double decodeWord(byte[] plane, int index, int pixelType, boolean little) { final double value; switch (pixelType) { case FormatTools.UINT8: value = plane[index] & 0xff; break; case FormatTools.INT8: value = plane[index]; break; case FormatTools.UINT16: value = DataTools.bytesToShort(plane, 2 * index, 2, little) & 0xffff; break; case FormatTools.INT16: value = DataTools.bytesToShort(plane, 2 * index, 2, little); break; case FormatTools.UINT32: value = DataTools.bytesToInt(plane, 4 * index, 4, little) & 0xffffffffL; break; case FormatTools.INT32: value = DataTools.bytesToInt(plane, 4 * index, 4, little); break; case FormatTools.FLOAT: value = DataTools.bytesToFloat(plane, 4 * index, 4, little); break; case FormatTools.DOUBLE: value = DataTools.bytesToDouble(plane, 8 * index, 8, little); break; default: value = Double.NaN; } return value; }