- *dst[2]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian, shift);
- *dst[0]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian, shift);
- *dst[1]++ = read10in32(&buf, &rgbBuffer,
- &n_datum, endian, shift);
+ if (elements >= 3)
+ *dst[2]++ = read10in32(&buf, &rgbBuffer,
+ &n_datum, endian, shift);
+ if (elements == 1)
+ *dst[0]++ = read10in32_gray(&buf, &rgbBuffer,
+ &n_datum, endian, shift);
+ else
+ *dst[0]++ = read10in32(&buf, &rgbBuffer,
+ &n_datum, endian, shift);
+ if (elements >= 2)
+ *dst[1]++ = read10in32(&buf, &rgbBuffer,
+ &n_datum, endian, shift);