Class XmpReader
- All Implemented Interfaces:
JpegSegmentMetadataReader
Note that XMP uses a namespace and path format for identifying values, which does not map to metadata-extractor's
integer based tag identifiers. Therefore, XMP data is extracted and exposed via XmpDirectory.getXMPMeta()
which returns an instance of Adobe's XMPMeta which exposes the full XMP data set.
The extraction is done with Adobe's XmpCore-Library (XMP-Toolkit) Copyright (c) 1999 - 2007, Adobe Systems Incorporated All rights reserved.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidPerforms the XMP data extraction, adding found values to the specified instance ofMetadata.voidPerforms the XMP data extraction, adding found values to the specified instance ofMetadata.voidPerforms the XMP data extraction, adding found values to the specified instance ofMetadata.voidextract(StringValue xmpString, Metadata metadata) Performs the XMP data extraction, adding found values to the specified instance ofMetadata.voidPerforms the XMP data extraction, adding found values to the specified instance ofMetadata.voidPerforms the XMP data extraction, adding found values to the specified instance ofMetadata.private static StringgetExtendedXMPGUID(Metadata metadata) Determine if there is an extended XMP section based on the standard XMP part.Gets the set of JPEG segment types that this reader is interested in.private static byte[]processExtendedXMPChunk(Metadata metadata, byte[] segmentBytes, String extendedXMPGUID, byte[] extendedXMPBuffer) Process an Extended XMP chunk.voidreadJpegSegments(Iterable<byte[]> segments, Metadata metadata, JpegSegmentType segmentType) Version specifically for dealing with XMP found in JPEG segments.
-
Field Details
-
XMP_JPEG_PREAMBLE
- See Also:
-
XMP_EXTENSION_JPEG_PREAMBLE
- See Also:
-
SCHEMA_XMP_NOTES
- See Also:
-
ATTRIBUTE_EXTENDED_XMP
- See Also:
-
PARSE_OPTIONS
private static final com.adobe.internal.xmp.options.ParseOptions PARSE_OPTIONS -
EXTENDED_XMP_GUID_LENGTH
private static final int EXTENDED_XMP_GUID_LENGTHExtended XMP constants- See Also:
-
EXTENDED_XMP_INT_LENGTH
private static final int EXTENDED_XMP_INT_LENGTH- See Also:
-
-
Constructor Details
-
XmpReader
public XmpReader()
-
-
Method Details
-
getSegmentTypes
Description copied from interface:JpegSegmentMetadataReaderGets the set of JPEG segment types that this reader is interested in.- Specified by:
getSegmentTypesin interfaceJpegSegmentMetadataReader
-
readJpegSegments
public void readJpegSegments(Iterable<byte[]> segments, Metadata metadata, JpegSegmentType segmentType) Version specifically for dealing with XMP found in JPEG segments. This form of XMP has a peculiar preamble, which must be removed before parsing the XML.- Specified by:
readJpegSegmentsin interfaceJpegSegmentMetadataReader- Parameters:
segments- The byte array from which the metadata should be extracted.metadata- TheMetadataobject into which extracted values should be merged.segmentType- TheJpegSegmentTypebeing read.
-
extract
Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
extract
Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
extract
public void extract(byte[] xmpBytes, int offset, int length, Metadata metadata, Directory parentDirectory) Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
extract
Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
extract
Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
extract
Performs the XMP data extraction, adding found values to the specified instance ofMetadata.The extraction is done with Adobe's XMPCore library.
-
getExtendedXMPGUID
Determine if there is an extended XMP section based on the standard XMP part. The xmpNote:HasExtendedXMP attribute contains the GUID of the Extended XMP chunks. -
processExtendedXMPChunk
private static byte[] processExtendedXMPChunk(Metadata metadata, byte[] segmentBytes, String extendedXMPGUID, byte[] extendedXMPBuffer) Process an Extended XMP chunk. It will read the bytes from segmentBytes and validates that the GUID the requested one. It will progressively fill the buffer with each chunk. The format is specified in this document: http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart3.pdf at page 19
-