|
|
@@ -1114,13 +1114,13 @@ write_data(xel *array, xelval *alpha) {
|
|
|
bytesperrow = _x_size * samplesperpixel;
|
|
|
} else if ( grayscale ) {
|
|
|
samplesperpixel = 1;
|
|
|
- bitspersample = pm_maxvaltobits( _maxval );
|
|
|
+ bitspersample = min(8, pm_maxvaltobits(_maxval));
|
|
|
photometric = PHOTOMETRIC_MINISBLACK;
|
|
|
i = 8 / bitspersample;
|
|
|
bytesperrow = ( _x_size + i - 1 ) / i;
|
|
|
} else {
|
|
|
samplesperpixel = 1;
|
|
|
- bitspersample = 8;
|
|
|
+ bitspersample = min(8, pm_maxvaltobits(_maxval));
|
|
|
photometric = PHOTOMETRIC_PALETTE;
|
|
|
bytesperrow = _x_size;
|
|
|
}
|