Add support for squashing TIFF output to 1-bit (#783)

This commit is contained in:
YvesBos
2017-04-27 00:47:29 +08:00
committed by Lovell Fuller
parent 567e3dd258
commit 4cd3b66761
7 changed files with 53 additions and 1 deletions

View File

@@ -171,6 +171,7 @@ const Sharp = function (input, options) {
tiffQuality: 80,
tiffCompression: 'jpeg',
tiffPredictor: 'none',
tiffSquash: false,
tileSize: 256,
tileOverlap: 0,
// Function to notify of queue length changes

View File

@@ -213,6 +213,7 @@ function webp (options) {
* @param {Boolean} [options.force=true] - force TIFF output, otherwise attempt to use input format
* @param {Boolean} [options.compression='jpeg'] - compression options: lzw, deflate, jpeg
* @param {Boolean} [options.predictor='none'] - compression predictor options: none, horizontal, float
* @param {Boolean} [options.squash=false] - squash 8-bit images down to 1 bit
* @returns {Sharp}
* @throws {Error} Invalid options
*/
@@ -224,6 +225,13 @@ function tiff (options) {
throw new Error('Invalid quality (integer, 1-100) ' + options.quality);
}
}
if (is.object(options) && is.defined(options.squash)) {
if (is.bool(options.squash)) {
this.options.tiffSquash = options.squash;
} else {
throw new Error('Invalid Value for squash ' + options.squash + ' Only Boolean Values allowed for options.squash.');
}
}
// compression
if (is.defined(options) && is.defined(options.compression)) {
if (is.string(options.compression) && is.inArray(options.compression, ['lzw', 'deflate', 'jpeg', 'none'])) {