Sample code for 30+ languages & platforms
PowerBuilder

Update a String Property in XMP

See more XMP Examples

Demonstrates how to open a JPG or TIF image file, access the XMP metadata, and update the value of a string property. (If the string property does not already exist, it is created.)

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Xmp
oleobject loo_Xml

li_Success = 0

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loo_Xmp = create oleobject
li_rc = loo_Xmp.ConnectToNewObject("Chilkat.Xmp")
if li_rc < 0 then
    destroy loo_Xmp
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Load a JPG or TIF image file.
li_Success = loo_Xmp.LoadAppFile("qa_data/xmp/AJ_123642_1511.tif")
if li_Success <> 1 then
    Write-Debug loo_Xmp.LastErrorText
    destroy loo_Xmp
    return
end if

Write-Debug "Num embedded XMP docs: " + string(loo_Xmp.NumEmbedded)

// This example assumes that XMP metadata is already present in the image file.
if loo_Xmp.NumEmbedded = 0 then
    Write-Debug "No XMP metadata already exists.."
    destroy loo_Xmp
    return
end if

// Get the XMP metadata.

loo_Xml = loo_Xmp.GetEmbedded(0)

// Show the XML:
Write-Debug loo_Xml.GetXml()

// Update (overwrite) a string property.
loo_Xmp.AddSimpleStr(loo_Xml,"NumberofTimes","123")

li_Success = loo_Xmp.SaveAppFile("qa_output/updated.tif")
if li_Success <> 1 then
    Write-Debug loo_Xmp.LastErrorText
    destroy loo_Xmp
    return
end if

Write-Debug "Success."


destroy loo_Xmp