You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.2 KiB
Plaintext
91 lines
3.2 KiB
Plaintext
XMP support
|
|
===========
|
|
Todo: XMP support is controlled with the ENABLE_XMP directive
|
|
in config/config.mk.in. This will be a configure option
|
|
eventually. To build Exiv2 without XMP support, comment the
|
|
line "ENABLE_XMP = 1" either in config.mk.in before running
|
|
./configure or in config.mk for now.
|
|
|
|
Top-level Exiv2 classes to access XMP metadata are XmpData,
|
|
Xmpdatum and XmpKey. They work similar to the corresponding
|
|
Exif and IPTC classes. The property-repository is XmpProperties.
|
|
In addition to the expected new members, class Image also
|
|
has a new interface to access the raw XMP packet.
|
|
|
|
All XMP value types are supported: Simple types, structures,
|
|
arrays, property qualifiers and language alternatives.
|
|
|
|
XMP properties are accessed through keys of the form
|
|
"Xmp.<Prefix>.<PropertyPath>", where <Prefix> is the preferred
|
|
(or rather, registered) prefix for a schema namespace and
|
|
<PropertyPath> is the path of the XMP node. In its most basic
|
|
form, to address simple properties, <PropertyPath> is the name
|
|
of the property. In general, <PropertyPath> can be used to
|
|
address any XMP node, including array items, structure fields
|
|
qualifiers and deeply nested properties.
|
|
|
|
Any properties in known namespaces are supported and additional
|
|
namespaces can be registered.
|
|
|
|
The specialized Exiv2 values XmpArrayValue and LangAltValue are
|
|
provided to simplify the use of XMP properties.
|
|
|
|
See xmpsample.cpp for examples of how to set various types of
|
|
XMP properties.
|
|
|
|
Note: Unlike Exif and IPTC tags, XMP properties do not have
|
|
a tag number.
|
|
|
|
Todo: Conversion between XMP and Exif/IPTC metadata.
|
|
|
|
XMP Toolkit installation
|
|
========================
|
|
Exiv2 uses the Adobe XMP Toolkit (XMP SDK) to parse
|
|
and serialize XMP packets (only the XMPCore component).
|
|
|
|
Todo: Integrate the XMPCore component of the XMP Toolkit with
|
|
Exiv2 and make the build process transparent for users. The
|
|
final solution will be to use an external XMP Toolkit eventually,
|
|
once it is available as a standalone package from Linux distros.
|
|
|
|
Below are the installation steps that worked for me on a
|
|
Debian GNU/Linux (testing) system. Your mileage may vary.
|
|
Please check with Adobe if you encounter problems with the
|
|
XMP Toolkit installation.
|
|
|
|
Installation directory
|
|
----------------------
|
|
The top-level exiv2 directory ($HOME/src/exiv2/ on my system).
|
|
|
|
If you install XMP elsewhere, or use different OS or STAGE
|
|
options to the make command below, you will need to manually
|
|
modify the exiv2/config/config.mk.in (before running the
|
|
configure script). There is no autoconf-magic yet to set
|
|
this via configure options.
|
|
|
|
External packages (non-Debian)
|
|
-----------------
|
|
xmp_v411_sdk.zip - http://www.adobe.com/devnet/xmp/sdk/eula.html
|
|
expat-2.0.1.tar.gz - http://sourceforge.net/project/showfiles.php?group_id=10127
|
|
exiv2 - from SVN
|
|
|
|
Installation steps
|
|
------------------
|
|
cd $HOME/src/exiv2/
|
|
cp /path/to/xmp_v411_sdk.zip ./
|
|
unzip xmp_v411_sdk.zip
|
|
|
|
cp /path/to/expat-2.0.1.tar.gz XMP-SDK/third-party/
|
|
cd XMP-SDK/third-party/
|
|
tar zxvf expat-2.0.1.tar.gz
|
|
mv expat expat-orig
|
|
mv expat-2.0.1 expat
|
|
|
|
cd ../build/gcc
|
|
make -f XMPCore.mak OS=i80386linux STAGE=debug
|
|
|
|
Expected result
|
|
---------------
|
|
Now there should be a library
|
|
../../public/libraries/i80386linux/debug/libXMPCoreStaticDebug.a
|