ReNamer:Scripts:Exiv2

From den4b Wiki
Revision as of 13:50, 1 April 2013 by Den4b (talk | contribs) (Updated script to ReNamer 5.70 and Exiv 0.23)
Jump to navigation Jump to search

Script integrates Exiv2 library in order to extract EXIF/IPTC/XMP tags from many types of images. CRW, CR2, RAW images are also supported.

Requirements

  • ReNamer v5.70
  • exiv2.exe v0.23 in ReNamer's folder

Code

Author: Denis Kozlov. Date: 2013-04-01. Extract unformatted line out of the command line output of the exiv2.exe tool. This script extracts Image Timestamp. Adjust EXIV and TAG constants to extract other tags.

Hint: Image Timestamp value is usually formatted as "yyyy:mm:dd hh:mm:ss" which contains an illegal filename character ":". The illegal character can be easily replaced using an additional Replace rule.

{ Extract EXIF/IPTC/XMP tags using Exiv2 }
 
const
  EXE = 'exiv2.exe';
  TAG = 'Image timestamp\s*\:\s*(.*?)[\r\n]';
 
var
  Command, Output: String;
  Matches: TStringsArray;  
 
begin
  Command := EXE+' "'+FilePath+'"';
  if ExecConsoleApp(Command, Output) = 0 then
  begin
    Matches := SubMatchesRegEx(Output, TAG, False);
    if Length(Matches) > 0 then
      FileName := Matches[0] + WideExtractFileExt(FileName);
  end;
end.

To extract IPTC Headline tag, you would need to make following changes:

EXE = 'exiv2.exe -pi';
TAG = 'Iptc.Application2.Headline\s*\w*\s*\d*\s*(.*?)[\r\n]';