Sample code for 30+ languages & platforms
PureBasic

Add XMP MetaData to JPG or TIFF

See more XMP Examples

Demonstrates how to add XMP metadata to a JPG or TIFF image that doesn't already have XMP metadata.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkXml.pb"
IncludeFile "CkXmp.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes 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

    xml.i

    ; The first step is to create a new XMP document, which is nothing
    ; more than XML.  The NewXmp method returns an XML document with
    ; the standard XMP boilerplate.  
    xml = CkXmp::ckNewXmp(xmp)

    ; Add some properties...
    success = CkXmp::ckAddSimpleStr(xmp,xml,"Iptc4xmpCore:Chilkat","Blah blah")
    ; If you wish to view the XML, save it to a file and review it
    ; with a text editor:
    success = CkXml::ckSaveXml(xml,"newXmp.xml")
    If success <> 1
        Debug CkXml::ckLastErrorText(xml)
        CkXmp::ckDispose(xmp)
        ProcedureReturn
    EndIf

    ; To add the XMP to the JPG (or TIFF), simply load the JPG,
    ; append the XMP, and save:
    success = CkXmp::ckLoadAppFile(xmp,"scream.jpg")
    If success <> 1
        Debug CkXmp::ckLastErrorText(xmp)
        CkXmp::ckDispose(xmp)
        ProcedureReturn
    EndIf

    success = CkXmp::ckAppend(xmp,xml)
    If success <> 1
        Debug CkXmp::ckLastErrorText(xmp)
        CkXmp::ckDispose(xmp)
        ProcedureReturn
    EndIf

    success = CkXmp::ckSaveAppFile(xmp,"screamOut.jpg")
    If success <> 1
        Debug CkXmp::ckLastErrorText(xmp)
        CkXmp::ckDispose(xmp)
        ProcedureReturn
    EndIf



    CkXmp::ckDispose(xmp)


    ProcedureReturn
EndProcedure