From c4df115948a6b0785303f0d58fd7608d5c83da0c Mon Sep 17 00:00:00 2001 From: Oleg Aleynik Date: Thu, 11 Jan 2018 00:12:11 +0200 Subject: [PATCH] Expose IPTC and XMP metadata when available (#1079) --- lib/input.js | 2 ++ package.json | 3 ++- src/metadata.cc | 26 ++++++++++++++++++++++++++ src/metadata.h | 10 +++++++++- test/fixtures/Landscape_9.jpg | Bin 0 -> 92932 bytes test/fixtures/index.js | 1 + test/unit/metadata.js | 17 +++++++++++++++++ 7 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/Landscape_9.jpg diff --git a/lib/input.js b/lib/input.js index d2311e92..808334ce 100644 --- a/lib/input.js +++ b/lib/input.js @@ -182,6 +182,8 @@ function clone () { * - `orientation`: Number value of the EXIF Orientation header, if present * - `exif`: Buffer containing raw EXIF data, if present * - `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present + * - `iptc`: Buffer containing raw IPTC data, if present + * - `xmp`: Buffer containing raw XMP data, if present * * @example * const image = sharp(inputJpg); diff --git a/package.json b/package.json index e966f809..eb12aa57 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,8 @@ "Matt Parrish ", "Matthew McEachen ", "Jarda Kotěšovec ", - "Kenric D'Souza " + "Kenric D'Souza ", + "Oleh Aleinyk " ], "scripts": { "clean": "rm -rf node_modules/ build/ vendor/ coverage/ test/fixtures/output.*", diff --git a/src/metadata.cc b/src/metadata.cc index 3e6ed9b8..81162377 100644 --- a/src/metadata.cc +++ b/src/metadata.cc @@ -81,6 +81,22 @@ class MetadataWorker : public Nan::AsyncWorker { memcpy(baton->icc, icc, iccLength); baton->iccLength = iccLength; } + // IPTC + if (image.get_typeof(VIPS_META_IPCT_NAME) == VIPS_TYPE_BLOB) { + size_t iptcLength; + void const *iptc = image.get_blob(VIPS_META_IPCT_NAME, &iptcLength); + baton->iptc = static_cast(g_malloc(iptcLength)); + memcpy(baton->iptc, iptc, iptcLength); + baton->iptcLength = iptcLength; + } + // XMP + if (image.get_typeof(VIPS_META_XMP_NAME) == VIPS_TYPE_BLOB) { + size_t xmpLength; + void const *xmp = image.get_blob(VIPS_META_XMP_NAME, &xmpLength); + baton->xmp = static_cast(g_malloc(xmpLength)); + memcpy(baton->xmp, xmp, xmpLength); + baton->xmpLength = xmpLength; + } } // Clean up @@ -123,6 +139,16 @@ class MetadataWorker : public Nan::AsyncWorker { New("icc").ToLocalChecked(), Nan::NewBuffer(baton->icc, baton->iccLength, sharp::FreeCallback, nullptr).ToLocalChecked()); } + if (baton->iptcLength > 0) { + Set(info, + New("iptc").ToLocalChecked(), + Nan::NewBuffer(baton->iptc, baton->iptcLength, sharp::FreeCallback, nullptr).ToLocalChecked()); + } + if (baton->xmpLength > 0) { + Set(info, + New("xmp").ToLocalChecked(), + Nan::NewBuffer(baton->xmp, baton->xmpLength, sharp::FreeCallback, nullptr).ToLocalChecked()); + } argv[1] = info; } diff --git a/src/metadata.h b/src/metadata.h index 50175639..c57a6b1a 100644 --- a/src/metadata.h +++ b/src/metadata.h @@ -38,6 +38,10 @@ struct MetadataBaton { size_t exifLength; char *icc; size_t iccLength; + char *iptc; + size_t iptcLength; + char *xmp; + size_t xmpLength; std::string err; MetadataBaton(): @@ -52,7 +56,11 @@ struct MetadataBaton { exif(nullptr), exifLength(0), icc(nullptr), - iccLength(0) {} + iccLength(0), + iptc(nullptr), + iptcLength(0), + xmp(nullptr), + xmpLength(0) {} }; NAN_METHOD(metadata); diff --git a/test/fixtures/Landscape_9.jpg b/test/fixtures/Landscape_9.jpg new file mode 100644 index 0000000000000000000000000000000000000000..07eafa79188a44acc1fbf4a09ebdb788432e4ea8 GIT binary patch literal 92932 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
  • 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 Bn^*t< literal 0 HcmV?d00001 diff --git a/test/fixtures/index.js b/test/fixtures/index.js index d8103cfa..bd9aaf4c 100644 --- a/test/fixtures/index.js +++ b/test/fixtures/index.js @@ -57,6 +57,7 @@ module.exports = { inputJpg: getPath('2569067123_aca715a2ee_o.jpg'), // http://www.flickr.com/photos/grizdave/2569067123/ inputJpgWithExif: getPath('Landscape_8.jpg'), // https://github.com/recurser/exif-orientation-examples/blob/master/Landscape_8.jpg + inputJpgWithIptcAndXmp: getPath('Landscape_9.jpg'), // https://unsplash.com/photos/RWAIyGmgHTQ inputJpgWithExifMirroring: getPath('Landscape_5.jpg'), // https://github.com/recurser/exif-orientation-examples/blob/master/Landscape_5.jpg inputJpgWithGammaHoliness: getPath('gamma_dalai_lama_gray.jpg'), // http://www.4p8.com/eric.brasseur/gamma.html inputJpgWithCmykProfile: getPath('Channel_digital_image_CMYK_color.jpg'), // http://en.wikipedia.org/wiki/File:Channel_digital_image_CMYK_color.jpg diff --git a/test/unit/metadata.js b/test/unit/metadata.js index cb8db649..92820530 100644 --- a/test/unit/metadata.js +++ b/test/unit/metadata.js @@ -58,6 +58,23 @@ describe('Image metadata', function () { }); }); + it('JPEG with IPTC/XMP', function (done) { + sharp(fixtures.inputJpgWithIptcAndXmp).metadata(function (err, metadata) { + if (err) throw err; + // IPTC + assert.strictEqual('object', typeof metadata.iptc); + assert.strictEqual(true, metadata.iptc instanceof Buffer); + assert.strictEqual(18250, metadata.iptc.byteLength); + assert.strictEqual(metadata.iptc.indexOf(Buffer.from('Photoshop')), 0); + // XMP + assert.strictEqual('object', typeof metadata.xmp); + assert.strictEqual(true, metadata.xmp instanceof Buffer); + assert.strictEqual(12495, metadata.xmp.byteLength); + assert.strictEqual(metadata.xmp.indexOf(Buffer.from('http://ns.adobe.com/xap/1.0')), 0); + done(); + }); + }); + it('TIFF', function (done) { sharp(fixtures.inputTiff).metadata(function (err, metadata) { if (err) throw err;