DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXmp
Variant vXml
Handle hoXml
Variant vSa
Handle hoSa
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatXmp)) To hoXmp
If (Not(IsComObjectCreated(hoXmp))) Begin
Send CreateComObject of hoXmp
End
// 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
Get ComLoadAppFile Of hoXmp "sample1.jpg" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXmp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComNumEmbedded Of hoXmp To iTemp1
Showln "Num embedded XMP docs: " iTemp1
// Assuming there is at least one, get the 1st.
// (There is typically never more than one, but theoretically it's possible.)
Get ComGetEmbedded Of hoXmp 0 To vXml
If (IsComObject(vXml)) Begin
Get Create (RefClass(cComChilkatXml)) To hoXml
Set pvComObject Of hoXml To vXml
End
Get ComLastMethodSuccess Of hoXmp To bTemp1
If (bTemp1 = True) Begin
// Create an object to hold one or more string values.
Get Create (RefClass(cComCkStringArray)) To hoSa
If (Not(IsComObjectCreated(hoSa))) Begin
Send CreateComObject of hoSa
End
Get ComAppend Of hoSa "value_1" To iSuccess
Get ComAppend Of hoSa "value_2" To iSuccess
// ...
Get pvComObject of hoSa to vSa
Get ComAddArray Of hoXmp vXml "bag" "Iptc4xmpCore:Chilkat" vSa To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXmp To sTemp1
Showln sTemp1
End
Else Begin
// Save the JPG.
Get ComSaveAppFile Of hoXmp "modified.jpg" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoXmp To sTemp1
Showln sTemp1
End
End
Send Destroy of hoXml
End
Else Begin
Get ComLastErrorText Of hoXmp To sTemp1
Showln sTemp1
End
End_Procedure