lazarus-ccr/components/fpexif/examples/console_demo/console_demo.pas

75 lines
1.7 KiB
ObjectPascal

program console_demo;
{$mode objfpc}{$H+}
uses
Classes,
fpeMetaData, fpeTags;
var
imgInfo: TImgInfo;
tag: TTag;
begin
imgInfo := TImgInfo.Create;
try
// Read file
imgInfo.LoadFromFile('..\test-image.jpg');
// Check for EXIF
if imgInfo.HasExif then begin
// Write out some tags
// (1) date and time when the picture was taken
Write('Date/time: ':20);
tag := imgInfo.ExifData.TagByName['DateTime'];
if tag = nil then
WriteLn('--- not available in this file ---')
else
WriteLn(tag.AsString);
// (2) shutter speed used when taking the photo
tag := imgInfo.ExifData.TagByName['ShutterSpeed'];
if tag <> nil then
WriteLn('Shutter speed: ':20, tag.AsString)
else
begin
// (3) Sometimes alternative tags are availabe
tag := imgInfo.ExifData.TagByName['ExposureTime'];
if tag <> nil then
WriteLn('Exposure time: ':20, tag.AsString);
end;
// Add user comment
imgInfo.ExifData.TagByName['UserComment'].AsString := 'This is my favorite photo.';
// Save to file
imgInfo.SaveToFile('edited_image.jpg');
end
else
WriteLn('No EXIF data in this file.');
// Check for IPTC
if imgInfo.HasIPTC then begin
// Write out IPTC key words
Write('Keywords: ':20);
tag := imgInfo.IptcData.TagByName['Keywords'];
if tag = nil then
WriteLn('--- not available in this file ---')
else
WriteLn(tag.AsString);
end
else
WriteLn('No IPTC data in this file.');
finally
imgInfo.Free;
end;
WriteLn;
WriteLn('Press ENTER to quit...');
ReadLn;
end.