Hi,
since ACR/LR are stuffing more and more data into XMP, I need to exclude the XMP-crs group when extracting data, except for some tags.
Recent LR versions store apparently every pinsel stroke and dab in the XMP, which can blow up the XMP record to several MB (!) per file.
I don't want most of XMP-crs tags, except from the crop tags and the AlreadyApplied tag.
I tried this:
exiftool -all:all --XMP-crs:all -XMP-crs:AlreadyApplied -xmp-crs:CropLeft...
skipping XMP-crs completely, then adding in the wanted tags again.
This gives no XMP-crs tags at all. Can this be done via ExifTool directly or do I need to do this in my application?
I thought this was documented somewhere, but I can't find it. It is the same for writing: Individual tags can't be re-included after a group exclusion, sorry.
- Phil
Edit: I have updated the documentation to explain this...
--TAG
Exclude specified tag from extracted information. Same as the -x
option. Once excluded from the output, a tag may not be re-
included by a subsequent option. May also be used following a
-tagsFromFile option to exclude tags from being copied, or to
exclude groups from being deleted when deleting all information
(ie. "-all= --exif:all" deletes all but EXIF information). But
note that this will not exclude individual tags from a group
delete. Instead, individual tags may be recovered using the
-tagsFromFile option (ie. "-all= -tagsfromfile @ -artist").
Wildcards are permitted as described above for -TAG.
And BTW, I disapprove of the Adobe technique of embedding detailed edit data in the XMP. I complained about this to them, but didn't get much sympathy.
Thanks, Phil :)
I will need to filter all the fluff out in my application then, when ingesting the ExifTool output. Not really a problem, but I tend to always try it natively first. To bad that I need about 10 tags from this namespace (crop tags and AlreadyApplied tag). Else I would skip xmp-crs completely. It is Adobe proprietary metadata, after all.
I've just received some sample files with over 2 MB (!) of XMP data in the Adobe crs namespace alone. One record for each brush stroke or mouse click...
The resulting XML output file with xmp:crs included has 146,000 (!) lines.
Which is a lot of XML data to process for a single image file. With --xmp:crs I only need to parse ~ 12,000 files.
I need to think real hard if this is worth it. I only need 8 tags from xmp:crs to get the crop info. I can filter in my app, but the data volume becomes so huge. And I have to process thousands of files... :'(
At least for the current product line, the following exclusion tags remove most of the mass data:
--xmp-crs:PaintCorrection*
--xmp-crs:GradientBasedCorr*