Delphi ActiveX
Delphi ActiveX
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 ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
xmp: TChilkatXmp;
xml: IChilkatXml;
begin
success := 0;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
xmp := TChilkatXmp.Create(Self);
// Load a JPG or TIF image file.
success := xmp.LoadAppFile('qa_data/xmp/AJ_123642_1511.tif');
if (success <> 1) then
begin
Memo1.Lines.Add(xmp.LastErrorText);
Exit;
end;
Memo1.Lines.Add('Num embedded XMP docs: ' + IntToStr(xmp.NumEmbedded));
// This example assumes that XMP metadata is already present in the image file.
if (xmp.NumEmbedded = 0) then
begin
Memo1.Lines.Add('No XMP metadata already exists..');
Exit;
end;
// Get the XMP metadata.
xml := xmp.GetEmbedded(0);
// Show the XML:
Memo1.Lines.Add(xml.GetXml());
// Update (overwrite) a string property.
xmp.AddSimpleStr(xml,'NumberofTimes','123');
success := xmp.SaveAppFile('qa_output/updated.tif');
if (success <> 1) then
begin
Memo1.Lines.Add(xmp.LastErrorText);
Exit;
end;
Memo1.Lines.Add('Success.');
end;