Delphi DLL
Delphi DLL
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 Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Xmp, Xml;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
xmp: HCkXmp;
xml: HCkXml;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
xmp := CkXmp_Create();
// Load a JPG or TIF image file.
success := CkXmp_LoadAppFile(xmp,'qa_data/xmp/AJ_123642_1511.tif');
if (success <> True) then
begin
Memo1.Lines.Add(CkXmp__lastErrorText(xmp));
Exit;
end;
Memo1.Lines.Add('Num embedded XMP docs: ' + IntToStr(CkXmp_getNumEmbedded(xmp)));
// This example assumes that XMP metadata is already present in the image file.
if (CkXmp_getNumEmbedded(xmp) = 0) then
begin
Memo1.Lines.Add('No XMP metadata already exists..');
Exit;
end;
// Get the XMP metadata.
xml := CkXmp_GetEmbedded(xmp,0);
// Show the XML:
Memo1.Lines.Add(CkXml__getXml(xml));
// Update (overwrite) a string property.
CkXmp_AddSimpleStr(xmp,xml,'NumberofTimes','123');
success := CkXmp_SaveAppFile(xmp,'qa_output/updated.tif');
if (success <> True) then
begin
Memo1.Lines.Add(CkXmp__lastErrorText(xmp));
Exit;
end;
Memo1.Lines.Add('Success.');
CkXmp_Dispose(xmp);
end;