Sample code for 30+ languages & platforms
PureBasic

Get a String 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 string property, such as the Location.

Chilkat PureBasic Downloads

PureBasic
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
    xml = CkXmp::ckGetEmbedded(xmp,0)
    If CkXmp::ckLastMethodSuccess(xmp) = 1

        propVal.s = CkXmp::ckGetSimpleStr(xmp,xml,"Iptc4xmpCore:Location")
        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