procedure ExportXMPSidecarFor(AImage: TImageItem); var AXmp: TXMP; ASidecar: WideString; begin ASidecar := WideChangeFileExt(AImage.FileName, '.xmp'); AXmp := TXMP.Create(False); try PublicCatalog.LoadXMPForImage(AImage, AXmp, PublicOptions.CachedXMP); AXmp.SaveToFile(ASidecar, AImage.ExifFileName); finally AXmp.Free; end; end; var i: Integer; AImage: TImageItem; ASidecar: WideString; APro: TxomProgress; begin if Selected.Count = 0 then begin Say2('No images selected.', 'Select one or more thumbnails and try again.'); exit; end; APro := TxomProgress.Create(nil); APro.Caption := 'Export metadata to sidecar XMP file'; APro.Max := Selected.Count; for i := 0 to Selected.Count - 1 do begin AImage := Selected.Items[i]; APro.Pos := i + i; APro.ProgressText := AImage.FileNameOnly; if APro.Cancel then break; ExportXMPSidecarFor(AImage); end; APro.Free; end;