numExtraSamples = numBands - 1;
}
}
} else { // colorModel is non-null but not an IndexColorModel
ColorSpace colorSpace = colorModel.getColorSpace();
switch(colorSpace.getType()) {
case ColorSpace.TYPE_CMYK:
imageType = TIFF_CMYK;
break;
case ColorSpace.TYPE_GRAY:
imageType = TIFF_GRAY;
break;
case ColorSpace.TYPE_Lab:
imageType = TIFF_CIELAB;
break;
case ColorSpace.TYPE_RGB:
if (compression == COMP_JPEG_TTN2
&& encodeParam.getJPEGCompressRGBToYCbCr()) {
imageType = TIFF_YCBCR;
} else {
imageType = TIFF_RGB;
}
break;
case ColorSpace.TYPE_YCbCr:
imageType = TIFF_YCBCR;
break;
default:
imageType = TIFF_GENERIC; // generic
break;
}
if (imageType == TIFF_GENERIC) {
numExtraSamples = numBands - 1;
} else if (numBands > 1) {
numExtraSamples = numBands - colorSpace.getNumComponents();
}
if (numExtraSamples == 1 && colorModel.hasAlpha()) {
extraSampleType = colorModel.isAlphaPremultiplied() ?
EXTRA_SAMPLE_ASSOCIATED_ALPHA :