Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loXmp
LOCAL loXml
LOCAL loSa

lnSuccess = 0

* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loXmp = CreateObject('Chilkat.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
lnSuccess = loXmp.LoadAppFile("sample1.jpg")
IF (lnSuccess <> 1) THEN
    ? loXmp.LastErrorText
    RELEASE loXmp
    CANCEL
ENDIF

? "Num embedded XMP docs: " + STR(loXmp.NumEmbedded)

* Assuming there is at least one, get the 1st.
* (There is typically never more than one, but theoretically it's possible.)

loXml = loXmp.GetEmbedded(0)
IF (loXmp.LastMethodSuccess = 1) THEN

    * Create an object to hold one or more string values.
    loSa = CreateObject('Chilkat.StringArray')
    lnSuccess = loSa.Append("value_1")
    lnSuccess = loSa.Append("value_2")
    * ...

    lnSuccess = loXmp.AddArray(loXml,"bag","Iptc4xmpCore:Chilkat",loSa)
    IF (lnSuccess <> 1) THEN
        ? loXmp.LastErrorText
    ELSE
        * Save the JPG.
        lnSuccess = loXmp.SaveAppFile("modified.jpg")
        IF (lnSuccess <> 1) THEN
            ? loXmp.LastErrorText
        ENDIF

    ENDIF

    RELEASE loXml

ELSE
    ? loXmp.LastErrorText
ENDIF

RELEASE loXmp
RELEASE loSa