diff --git a/docs/changelog.md b/docs/changelog.md index 3bf9c371..51143f62 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -4,6 +4,11 @@ Requires libvips v8.8.1. +#### v0.23.1 - TBD + +* Ensure `sharp.format.vips` is present and correct (filesystem only). + [#1813](https://github.com/lovell/sharp/issues/1813) + #### v0.23.0 - 29th July 2019 * Remove `overlayWith` previously deprecated in v0.22.0. diff --git a/src/common.cc b/src/common.cc index 044ce124..204a9b7b 100644 --- a/src/common.cc +++ b/src/common.cc @@ -147,7 +147,7 @@ namespace sharp { case ImageType::OPENSLIDE: id = "openslide"; break; case ImageType::PPM: id = "ppm"; break; case ImageType::FITS: id = "fits"; break; - case ImageType::VIPS: id = "v"; break; + case ImageType::VIPS: id = "vips"; break; case ImageType::RAW: id = "raw"; break; case ImageType::UNKNOWN: id = "unknown"; break; case ImageType::MISSING: id = "missing"; break; diff --git a/src/utilities.cc b/src/utilities.cc index e86654b3..09c217aa 100644 --- a/src/utilities.cc +++ b/src/utilities.cc @@ -150,8 +150,9 @@ NAN_METHOD(format) { // Which load/save operations are available for each compressed format? Local format = New(); - for (std::string f : { - "jpeg", "png", "webp", "tiff", "magick", "openslide", "dz", "ppm", "fits", "gif", "svg", "heif", "pdf", "v" + for (std::string const f : { + "jpeg", "png", "webp", "tiff", "magick", "openslide", "dz", + "ppm", "fits", "gif", "svg", "heif", "pdf", "vips" }) { // Input Local hasInputFile = diff --git a/test/unit/metadata.js b/test/unit/metadata.js index 0f3e89df..60e79756 100644 --- a/test/unit/metadata.js +++ b/test/unit/metadata.js @@ -232,6 +232,26 @@ describe('Image metadata', function () { done(); }); }); + it('vips', () => + sharp(fixtures.inputV) + .metadata() + .then(metadata => { + assert.strictEqual('vips', metadata.format); + assert.strictEqual('undefined', typeof metadata.size); + assert.strictEqual(70, metadata.width); + assert.strictEqual(60, metadata.height); + assert.strictEqual(3, metadata.channels); + assert.strictEqual('uchar', metadata.depth); + assert.strictEqual(72, metadata.density); + assert.strictEqual('undefined', typeof metadata.chromaSubsampling); + assert.strictEqual(false, metadata.isProgressive); + assert.strictEqual(false, metadata.hasProfile); + assert.strictEqual(false, metadata.hasAlpha); + assert.strictEqual('undefined', typeof metadata.orientation); + assert.strictEqual('undefined', typeof metadata.exif); + assert.strictEqual('undefined', typeof metadata.icc); + }) + ); it('File in, Promise out', function (done) { sharp(fixtures.inputJpg).metadata().then(function (metadata) { diff --git a/test/unit/util.js b/test/unit/util.js index 3d99a9c1..3458d300 100644 --- a/test/unit/util.js +++ b/test/unit/util.js @@ -118,6 +118,13 @@ describe('Utilities', function () { assert.strictEqual(true, sharp.format.raw[direction].stream); }); }); + it('vips format supports filesystem only', function () { + ['input', 'output'].forEach(function (direction) { + assert.strictEqual(true, sharp.format.vips[direction].file); + assert.strictEqual(false, sharp.format.vips[direction].buffer); + assert.strictEqual(false, sharp.format.vips[direction].stream); + }); + }); }); describe('Versions', function () {