Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add XMP raw string to output #183

Merged
merged 1 commit into from
Mar 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dist/exif-reader.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/exif-reader.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions src/exif-reader.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,7 @@ export function loadView(dataView, {expanded = false, includeUnknown = false} =
if (expanded) {
tags.xmp = readXmpTags;
} else {
delete readXmpTags._raw;
tags = objectAssign({}, tags, readXmpTags);
}
}
Expand Down Expand Up @@ -265,6 +266,7 @@ export function loadView(dataView, {expanded = false, includeUnknown = false} =
if (expanded) {
tags.xmp = readTags;
} else {
delete readTags._raw;
tags = objectAssign({}, tags, readTags);
}
}
Expand Down
8 changes: 6 additions & 2 deletions src/xmp-tags.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ function combineChunks(dataView, chunks) {

function readTags(tags, chunkDataView) {
try {
const doc = getDocument(chunkDataView);
const {doc, raw} = getDocument(chunkDataView);
tags._raw = (tags._raw || '') + raw;
const rdf = getRDF(doc);

return objectAssign(tags, parseXMPObject(convertToObject(rdf, true)));
Expand All @@ -74,7 +75,10 @@ function getDocument(chunkDataView) {
throw new Error(doc.documentElement.textContent);
}

return doc;
return {
doc,
raw: xmlString,
};
}

function trimXmlSource(xmlSource) {
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/outputs/test-iptc.jpg.out

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion test/fixtures/outputs/test-iptc.jpg_everything.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"combined":{"Bits Per Sample":{"value":8,"description":"8"},"Image Height":{"value":12,"description":"12px"},"Image Width":{"value":22,"description":"22px"},"Color Components":{"value":3,"description":"3"},"Subsampling":{"value":[[1,17,0],[2,17,1],[3,17,1]],"description":"YCbCr4:4:4 (1 1)"},"Thumbnail":{"Compression":{"id":259,"value":6,"description":6},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"JPEGInterchangeFormat":{"id":513,"value":274,"description":274},"JPEGInterchangeFormatLength":{"id":514,"value":1212,"description":1212},"type":"image/jpeg","image":"zTp1QOOrSl/MHvIKf5mGeydWL9M=","base64":"elRwMVFPT3JTbC9NSHZJS2Y1bUdleWRXTDlNPQ=="},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"YCbCrPositioning":{"id":531,"value":1,"description":"centered"},"Exif IFD Pointer":{"id":34665,"value":90,"description":90},"ExifVersion":{"id":36864,"value":[48,50,51,50],"description":"0232"},"ComponentsConfiguration":{"id":37121,"value":[1,2,3,0],"description":""},"FlashpixVersion":{"id":40960,"value":[48,49,48,48],"description":"0100"},"ColorSpace":{"id":40961,"value":65535,"description":"Uncalibrated"},"LensModel":{"id":42036,"value":["EF24-105mm f/4L IS USM"],"description":"EF24-105mm f/4L IS USM"},"Sub-location":{"id":604,"value":[77,121,32,83,117,98,108,111,99,97,116,105,111,110],"description":"My Sublocation"},"Record Version":{"id":512,"value":[0,4],"description":"4"},"about":{"value":"","attributes":{},"description":""},"AuthorsPosition":{"value":"Photographer","attributes":{},"description":"Photographer"},"Preferred CMM type":{"value":"Lino","description":"Lino"},"Profile Version":{"value":"2.1.0","description":"2.1.0"},"Profile/Device class":{"value":"mntr","description":"Display Device profile"},"Color Space":{"value":"RGB ","description":"RGB "},"Connection Space":{"value":"XYZ ","description":"XYZ "},"ICC Profile Date":{"value":"1998-02-09T06:49:00.000Z","description":"1998-02-09T06:49:00.000Z"},"ICC Signature":{"value":"acsp","description":"acsp"},"Primary Platform":{"value":"MSFT","description":"Microsoft"},"Device Manufacturer":{"value":"IEC ","description":"IEC "},"Device Model Number":{"value":"sRGB","description":"sRGB"},"Rendering Intent":{"value":0,"description":"Perceptual"},"Profile Creator":{"value":"HP ","description":"HP "},"ICC Copyright":{"value":"Copyright (c) 1998 Hewlett-Packard C","description":"Copyright (c) 1998 Hewlett-Packard C"},"ICC Description":{"value":"sRGB IEC61966-2.1","description":"sRGB IEC61966-2.1"},"ICC Device Manufacturer for Display":{"value":"IEC http://www.iec.ch","description":"IEC http://www.iec.ch"},"ICC Device Model Description":{"value":"IEC 61966-2.1 Default RGB colour space - sRGB","description":"IEC 61966-2.1 Default RGB colour space - sRGB"},"ICC Viewing Conditions Description":{"value":"Reference Viewing Condition in IEC61966-2.1","description":"Reference Viewing Condition in IEC61966-2.1"},"Technology":{"value":"CRT ","description":"CRT "}},"expanded":{"file":{"Bits Per Sample":{"value":8,"description":"8"},"Image Height":{"value":12,"description":"12px"},"Image Width":{"value":22,"description":"22px"},"Color Components":{"value":3,"description":"3"},"Subsampling":{"value":[[1,17,0],[2,17,1],[3,17,1]],"description":"YCbCr4:4:4 (1 1)"}},"Thumbnail":{"Compression":{"id":259,"value":6,"description":6},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"JPEGInterchangeFormat":{"id":513,"value":274,"description":274},"JPEGInterchangeFormatLength":{"id":514,"value":1212,"description":1212},"type":"image/jpeg","image":"zTp1QOOrSl/MHvIKf5mGeydWL9M=","base64":"elRwMVFPT3JTbC9NSHZJS2Y1bUdleWRXTDlNPQ=="},"exif":{"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"YCbCrPositioning":{"id":531,"value":1,"description":"centered"},"Exif IFD Pointer":{"id":34665,"value":90,"description":90},"ExifVersion":{"id":36864,"value":[48,50,51,50],"description":"0232"},"ComponentsConfiguration":{"id":37121,"value":[1,2,3,0],"description":""},"FlashpixVersion":{"id":40960,"value":[48,49,48,48],"description":"0100"},"ColorSpace":{"id":40961,"value":65535,"description":"Uncalibrated"},"LensModel":{"id":42036,"value":["EF24-105mm f/4L IS USM"],"description":"EF24-105mm f/4L IS USM"}},"iptc":{"Sub-location":{"id":604,"value":[77,121,32,83,117,98,108,111,99,97,116,105,111,110],"description":"My Sublocation"},"Record Version":{"id":512,"value":[0,4],"description":"4"}},"xmp":{"about":{"value":"","attributes":{},"description":""},"AuthorsPosition":{"value":"Photographer","attributes":{},"description":"Photographer"}},"icc":{"Preferred CMM type":{"value":"Lino","description":"Lino"},"Profile Version":{"value":"2.1.0","description":"2.1.0"},"Profile/Device class":{"value":"mntr","description":"Display Device profile"},"Color Space":{"value":"RGB ","description":"RGB "},"Connection Space":{"value":"XYZ ","description":"XYZ "},"ICC Profile Date":{"value":"1998-02-09T06:49:00.000Z","description":"1998-02-09T06:49:00.000Z"},"ICC Signature":{"value":"acsp","description":"acsp"},"Primary Platform":{"value":"MSFT","description":"Microsoft"},"Device Manufacturer":{"value":"IEC ","description":"IEC "},"Device Model Number":{"value":"sRGB","description":"sRGB"},"Rendering Intent":{"value":0,"description":"Perceptual"},"Profile Creator":{"value":"HP ","description":"HP "},"ICC Copyright":{"value":"Copyright (c) 1998 Hewlett-Packard C","description":"Copyright (c) 1998 Hewlett-Packard C"},"ICC Description":{"value":"sRGB IEC61966-2.1","description":"sRGB IEC61966-2.1"},"ICC Device Manufacturer for Display":{"value":"IEC http://www.iec.ch","description":"IEC http://www.iec.ch"},"ICC Device Model Description":{"value":"IEC 61966-2.1 Default RGB colour space - sRGB","description":"IEC 61966-2.1 Default RGB colour space - sRGB"},"ICC Viewing Conditions Description":{"value":"Reference Viewing Condition in IEC61966-2.1","description":"Reference Viewing Condition in IEC61966-2.1"},"Technology":{"value":"CRT ","description":"CRT "}}}}
{"combined":{"Bits Per Sample":{"value":8,"description":"8"},"Image Height":{"value":12,"description":"12px"},"Image Width":{"value":22,"description":"22px"},"Color Components":{"value":3,"description":"3"},"Subsampling":{"value":[[1,17,0],[2,17,1],[3,17,1]],"description":"YCbCr4:4:4 (1 1)"},"Thumbnail":{"Compression":{"id":259,"value":6,"description":6},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"JPEGInterchangeFormat":{"id":513,"value":274,"description":274},"JPEGInterchangeFormatLength":{"id":514,"value":1212,"description":1212},"type":"image/jpeg","image":"zTp1QOOrSl/MHvIKf5mGeydWL9M=","base64":"elRwMVFPT3JTbC9NSHZJS2Y1bUdleWRXTDlNPQ=="},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"YCbCrPositioning":{"id":531,"value":1,"description":"centered"},"Exif IFD Pointer":{"id":34665,"value":90,"description":90},"ExifVersion":{"id":36864,"value":[48,50,51,50],"description":"0232"},"ComponentsConfiguration":{"id":37121,"value":[1,2,3,0],"description":""},"FlashpixVersion":{"id":40960,"value":[48,49,48,48],"description":"0100"},"ColorSpace":{"id":40961,"value":65535,"description":"Uncalibrated"},"LensModel":{"id":42036,"value":["EF24-105mm f/4L IS USM"],"description":"EF24-105mm f/4L IS USM"},"Sub-location":{"id":604,"value":[77,121,32,83,117,98,108,111,99,97,116,105,111,110],"description":"My Sublocation"},"Record Version":{"id":512,"value":[0,4],"description":"4"},"about":{"value":"","attributes":{},"description":""},"AuthorsPosition":{"value":"Photographer","attributes":{},"description":"Photographer"},"Preferred CMM type":{"value":"Lino","description":"Lino"},"Profile Version":{"value":"2.1.0","description":"2.1.0"},"Profile/Device class":{"value":"mntr","description":"Display Device profile"},"Color Space":{"value":"RGB ","description":"RGB "},"Connection Space":{"value":"XYZ ","description":"XYZ "},"ICC Profile Date":{"value":"1998-02-09T06:49:00.000Z","description":"1998-02-09T06:49:00.000Z"},"ICC Signature":{"value":"acsp","description":"acsp"},"Primary Platform":{"value":"MSFT","description":"Microsoft"},"Device Manufacturer":{"value":"IEC ","description":"IEC "},"Device Model Number":{"value":"sRGB","description":"sRGB"},"Rendering Intent":{"value":0,"description":"Perceptual"},"Profile Creator":{"value":"HP ","description":"HP "},"ICC Copyright":{"value":"Copyright (c) 1998 Hewlett-Packard C","description":"Copyright (c) 1998 Hewlett-Packard C"},"ICC Description":{"value":"sRGB IEC61966-2.1","description":"sRGB IEC61966-2.1"},"ICC Device Manufacturer for Display":{"value":"IEC http://www.iec.ch","description":"IEC http://www.iec.ch"},"ICC Device Model Description":{"value":"IEC 61966-2.1 Default RGB colour space - sRGB","description":"IEC 61966-2.1 Default RGB colour space - sRGB"},"ICC Viewing Conditions Description":{"value":"Reference Viewing Condition in IEC61966-2.1","description":"Reference Viewing Condition in IEC61966-2.1"},"Technology":{"value":"CRT ","description":"CRT "}},"expanded":{"file":{"Bits Per Sample":{"value":8,"description":"8"},"Image Height":{"value":12,"description":"12px"},"Image Width":{"value":22,"description":"22px"},"Color Components":{"value":3,"description":"3"},"Subsampling":{"value":[[1,17,0],[2,17,1],[3,17,1]],"description":"YCbCr4:4:4 (1 1)"}},"Thumbnail":{"Compression":{"id":259,"value":6,"description":6},"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"JPEGInterchangeFormat":{"id":513,"value":274,"description":274},"JPEGInterchangeFormatLength":{"id":514,"value":1212,"description":1212},"type":"image/jpeg","image":"zTp1QOOrSl/MHvIKf5mGeydWL9M=","base64":"elRwMVFPT3JTbC9NSHZJS2Y1bUdleWRXTDlNPQ=="},"exif":{"XResolution":{"id":282,"value":[72,1],"description":"72"},"YResolution":{"id":283,"value":[72,1],"description":"72"},"ResolutionUnit":{"id":296,"value":2,"description":"inches"},"YCbCrPositioning":{"id":531,"value":1,"description":"centered"},"Exif IFD Pointer":{"id":34665,"value":90,"description":90},"ExifVersion":{"id":36864,"value":[48,50,51,50],"description":"0232"},"ComponentsConfiguration":{"id":37121,"value":[1,2,3,0],"description":""},"FlashpixVersion":{"id":40960,"value":[48,49,48,48],"description":"0100"},"ColorSpace":{"id":40961,"value":65535,"description":"Uncalibrated"},"LensModel":{"id":42036,"value":["EF24-105mm f/4L IS USM"],"description":"EF24-105mm f/4L IS USM"}},"iptc":{"Sub-location":{"id":604,"value":[77,121,32,83,117,98,108,111,99,97,116,105,111,110],"description":"My Sublocation"},"Record Version":{"id":512,"value":[0,4],"description":"4"}},"xmp":{"_raw":"<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>\n<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 11.65'>\n<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n\n <rdf:Description rdf:about=''\n xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>\n <photoshop:AuthorsPosition>Photographer</photoshop:AuthorsPosition>\n </rdf:Description>\n</rdf:RDF>\n</x:xmpmeta>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n<?xpacket end='w'?>","about":{"value":"","attributes":{},"description":""},"AuthorsPosition":{"value":"Photographer","attributes":{},"description":"Photographer"}},"icc":{"Preferred CMM type":{"value":"Lino","description":"Lino"},"Profile Version":{"value":"2.1.0","description":"2.1.0"},"Profile/Device class":{"value":"mntr","description":"Display Device profile"},"Color Space":{"value":"RGB ","description":"RGB "},"Connection Space":{"value":"XYZ ","description":"XYZ "},"ICC Profile Date":{"value":"1998-02-09T06:49:00.000Z","description":"1998-02-09T06:49:00.000Z"},"ICC Signature":{"value":"acsp","description":"acsp"},"Primary Platform":{"value":"MSFT","description":"Microsoft"},"Device Manufacturer":{"value":"IEC ","description":"IEC "},"Device Model Number":{"value":"sRGB","description":"sRGB"},"Rendering Intent":{"value":0,"description":"Perceptual"},"Profile Creator":{"value":"HP ","description":"HP "},"ICC Copyright":{"value":"Copyright (c) 1998 Hewlett-Packard C","description":"Copyright (c) 1998 Hewlett-Packard C"},"ICC Description":{"value":"sRGB IEC61966-2.1","description":"sRGB IEC61966-2.1"},"ICC Device Manufacturer for Display":{"value":"IEC http://www.iec.ch","description":"IEC http://www.iec.ch"},"ICC Device Model Description":{"value":"IEC 61966-2.1 Default RGB colour space - sRGB","description":"IEC 61966-2.1 Default RGB colour space - sRGB"},"ICC Viewing Conditions Description":{"value":"Reference Viewing Condition in IEC61966-2.1","description":"Reference Viewing Condition in IEC61966-2.1"},"Technology":{"value":"CRT ","description":"CRT "}}}}
Loading