Sample code for 30+ languages & platforms
React Native

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 React Native Downloads

React Native
import { StringArray, Xmp } from '@chilkat/react-native'

function chilkatExample() {
  // This requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const 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 {
    console.log(xmp.lastErrorText);
    return;
  }

  console.log(`Num embedded XMP docs: ${xmp.numEmbedded}`);

  // Assuming there is at least one, get the 1st.
  // (There is typically never more than one, but theoretically it's possible.)
  try {
    const xml = xmp.getEmbedded(0);

    // Create an object to hold one or more string values.
    const sa = new StringArray();
    sa.append('value_1');
    sa.append('value_2');
    // ...

    try {
      xmp.addArray(xml, 'bag', 'Iptc4xmpCore:Chilkat', sa);
      // Save the JPG.
      try {
        xmp.saveAppFile('modified.jpg');
      } catch {
        console.log(xmp.lastErrorText);
      }
    } catch {
      console.log(xmp.lastErrorText);
    }
  } catch {
    console.log(xmp.lastErrorText);
  }
}