NAME
File::Sticker::Scribe::Exif - read, write and standardize meta-data from EXIF file
VERSION
version 4.00
SYNOPSIS
use File::Sticker::Scribe::Exif;
my $obj = File::Sticker::Scribe::Exif->new(%args);
my %meta = $obj->read_meta($filename);
$obj->write_meta(%args);
DESCRIPTION
This will write meta-data from EXIF files, and standardize it to a common nomenclature, such as "tags" for things called tags, or Keywords or Subject etc.
DEBUGGING
whoami
Used for debugging info
METHODS
init
Initialize the object.
$scribe->init(wanted_fields=>{title=>'TEXT',count=>'NUMBER',tags=>'MULTI'});
priority
The priority of this writer. Scribes with higher priority get tried first.
allowed_file
If this scribe can be used for the given file, then this returns true. File must be one of: PDF or an image which is not a GIF. (GIF files need to be treated separately) (ExifTool can't write to EPUB)
known_fields
Returns the fields which this scribe knows about.
my $known_fields = $scribe->known_fields();
readonly_fields
Returns the fields which this scribe knows about, which can't be overwritten, but are allowed to be "wanted" fields. Things like file-size etc.
my $readonly_fields = $scribe->readonly_fields();
read_meta
Read the meta-data from the given file.
my $meta = $obj->read_meta($filename);
Helper Functions
Private interface.
replace_one_field
Overwrite the given field. This does no checking.
$writer->replace_one_field(filename=>$filename,field=>$field,value=>$value);
delete_field_from_file
Completely remove the given field. This does no checking.
$writer->delete_field_from_file(filename=>$filename,field=>$field);
_get_the_real_file
If the file is a directory, look for a cover file. If the file is a soft link, look for the file it is pointing to (because ExifTool behaves badly with soft links).
my $real_file = $scribe->_get_the_real_file(filename=>$filename);
_read_freeform_data
Read the freeform data as YAML data from the XMP-sticker:FreeFields field.
my $ydata = $self->_read_freeform_data(exif=>$exif);
_write_freeform_data
Write the freeform data as YAML data into the XML-sticker:FreeFields field This overwrites whatever is there, it does not check.
$self->_write_freeform_data(newdata=>\%newdata,exif=>$exif);
_convert_freeform_data
Convert the freeform data so that it is placed into the XMP-sticker:FreeFields field rather than the XMP:Description, UserComment or ImageDescription field.
$self->_convert_freeform_data(exif=>$exif);
BUGS
Please report any bugs or feature requests to the author.