PureBasic
PureBasic
Get a Structure Property Value from XMP
See more XMP Examples
Demonstrates how to open a JPG or TIF image file, access the XMP metadata, and fetch the value of a structure property, such as the Iptc4xmpCore:CiTelWork (found within the Iptc4xmpCore:CreatorContactInfo structure).Chilkat PureBasic Downloads
IncludeFile "CkXml.pb"
IncludeFile "CkXmp.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
xmp.i = CkXmp::ckCreate()
If xmp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; 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
success = CkXmp::ckLoadAppFile(xmp,"sample1.jpg")
If success <> 1
Debug CkXmp::ckLastErrorText(xmp)
CkXmp::ckDispose(xmp)
ProcedureReturn
EndIf
Debug "Num embedded XMP docs: " + Str(CkXmp::ckNumEmbedded(xmp))
; Assuming there is at least one, get the 1st.
; (There is typically never more than one, but theoretically it's possible.)
xml.i = CkXmp::ckGetEmbedded(xmp,0)
If CkXmp::ckLastMethodSuccess(xmp) = 1
propVal.s = CkXmp::ckGetStructValue(xmp,xml,"Iptc4xmpCore:CreatorContactInfo","Iptc4xmpCore:CiTelWork")
If CkXmp::ckLastMethodSuccess(xmp) <> 1
Debug "Not found."
Else
Debug propVal
EndIf
CkXml::ckDispose(xml)
Else
Debug CkXmp::ckLastErrorText(xmp)
EndIf
CkXmp::ckDispose(xmp)
ProcedureReturn
EndProcedure