PHP
Chilkat2 PHP
XMP Array Property - Bag, Seq, or Alt
See more XMP Examples
How to insert or update an XMP array property (bag, seq, or alt).Chilkat PHP Downloads
<?php
use Chilkat2\StringArray;
use Chilkat2\Xmp;
$success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$xmp = new Xmp();
// Load a JPG or TIF image file.
// Sample JPG's with XMP metadata may be found at:
// http://www.chilkatsoft.com/testData/xmp/sample1.jpg
// http://www.chilkatsoft.com/testData/xmp/sample2.jpg
// http://www.chilkatsoft.com/testData/xmp/sample3.jpg
try {
$xmp->LoadAppFile('sample1.jpg');
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
echo 'Num embedded XMP docs: ', $xmp->NumEmbedded, "\n";
// Assuming there is at least one, get the 1st.
// (There is typically never more than one, but theoretically it's possible.)
try {
$xml = $xmp->GetEmbedded(0);
} catch (\Chilkat2\Exception $e) {
$xml = null;
}
if ($xml !== null) {
// Create an object to hold one or more string values.
$sa = new StringArray();
$sa->Append('value_1');
$sa->Append('value_2');
// ...
try {
$xmp->AddArray($xml, 'bag', 'Iptc4xmpCore:Chilkat', $sa);
$success = true;
} catch (\Chilkat2\Exception $e) {
$success = false;
}
if (!$success) {
echo $xmp->LastErrorText, "\n";
} else {
// Save the JPG.
try {
$xmp->SaveAppFile('modified.jpg');
} catch (\Chilkat2\Exception $e) {
echo $e->getMessage(), "\n";
}
}
} else {
echo $xmp->LastErrorText, "\n";
}