1Image::ExifTool(3)    User Contributed Perl Documentation   Image::ExifTool(3)
2
3
4

NAME

6       Image::ExifTool - Read and write meta information
7

SYNOPSIS

9         use Image::ExifTool qw(:Public);
10
11         # ---- Simple procedural usage ----
12
13         # Get hash of meta information tag names/values from an image
14         $info = ImageInfo('a.jpg');
15
16         # ---- Object-oriented usage ----
17
18         # Create a new Image::ExifTool object
19         $exifTool = new Image::ExifTool;
20
21         # Extract meta information from an image
22         $exifTool->ExtractInfo($file, \%options);
23
24         # Get list of tags in the order they were found in the file
25         @tagList = $exifTool->GetFoundTags('File');
26
27         # Get the value of a specified tag
28         $value = $exifTool->GetValue($tag, $type);
29
30         # Get a tag description
31         $description = $exifTool->GetDescription($tag);
32
33         # Get the group name associated with this tag
34         $group = $exifTool->GetGroup($tag, $family);
35
36         # Set a new value for a tag
37         $exifTool->SetNewValue($tag, $newValue);
38
39         # Write new meta information to a file
40         $success = $exifTool->WriteInfo($srcfile, $dstfile);
41
42         # ...plus a host of other useful methods...
43

DESCRIPTION

45       ExifTool provides an extensible set of perl modules to read and write
46       meta information in image, audio and video files, including the maker
47       note information of many digital cameras by various manufacturers such
48       as Canon, Casio, FujiFilm, HP, JVC/Victor, Kodak, Leaf, Minolta/Kon‐
49       ica-Minolta, Nikon, Olympus/Epson, Panasonic/Leica, Pentax/Asahi,
50       Ricoh, Sanyo, Sigma/Foveon and Sony.
51
52       Below is a list of file types and meta information formats currently
53       supported by ExifTool (r = read, w = write, c = create):
54
55                       File Types                 ⎪    Meta Information
56         ---------------------------------------  ⎪  --------------------
57         ACR   r       JP2   r/w     PPT   r      ⎪  EXIF           r/w/c
58         AI    r       JPEG  r/w     PS    r/w    ⎪  GPS            r/w/c
59         AIFF  r       K25   r       PSD   r/w    ⎪  IPTC           r/w/c
60         APE   r       M4A   r       QTIF  r      ⎪  XMP            r/w/c
61         ARW   r       MEF   r/w     RA    r      ⎪  MakerNotes     r/w/c
62         ASF   r       MIE   r/w/c   RAF   r      ⎪  Photoshop IRB  r/w/c
63         AVI   r       MIFF  r       RAM   r      ⎪  ICC Profile    r/w/c
64         BMP   r       MNG   r/w     RAW   r/w    ⎪  MIE            r/w/c
65         BTF   r       MOS   r/w     RIFF  r      ⎪  JFIF           r/w/c
66         CR2   r/w     MOV   r       RM    r      ⎪  Ducky APP12    r/w/c
67         CRW   r/w     MP3   r       SR2   r      ⎪  CIFF           r/w
68         CS1   r/w     MP4   r       SRF   r      ⎪  AFCP           r/w
69         DCM   r       MPC   r       SWF   r      ⎪  DICOM          r
70         DCR   r       MPG   r       THM   r/w    ⎪  Flash          r
71         DNG   r/w     MRW   r/w     TIFF  r/w    ⎪  FlashPix       r
72         DOC   r       NEF   r/w     VRD   r/w/c  ⎪  GeoTIFF        r
73         EPS   r/w     OGG   r       WAV   r      ⎪  PrintIM        r
74         ERF   r/w     ORF   r/w     WDP   r/w    ⎪  ID3            r
75         FLAC  r       PBM   r/w     WMA   r      ⎪  Kodak Meta     r
76         FLV   r       PDF   r       WMV   r      ⎪  Ricoh RMETA    r
77         FPX   r       PEF   r/w     X3F   r      ⎪  Picture Info   r
78         GIF   r/w     PGM   r/w     XLS   r      ⎪  Adobe APP14    r
79         HTML  r       PICT  r       XMP   r/w/c  ⎪  APE            r
80         ICC   r/w/c   PNG   r/w                  ⎪  Vorbis         r
81         JNG   r/w     PPM   r/w                  ⎪  (and more)
82

CONFIGURATION

84       User-defined tags can be added via the ExifTool configuration file.
85       See "ExifTool_config" in the ExifTool distribution for more details.
86       If necessary, the configuration feature can be disabled by setting the
87       ExifTool "noConfig" flag before loading Image::ExifTool.  For example:
88
89           BEGIN { $Image::ExifTool::noConfig = 1 }
90           use Image::ExifTool;
91

METHODS

93       new
94
95       Creates a new ExifTool object.
96
97           $exifTool = new Image::ExifTool;
98
99       Note that ExifTool uses AUTOLOAD to load non-member methods, so any
100       class using Image::ExifTool as a base class must define an AUTOLOAD
101       which calls Image::ExifTool::DoAutoLoad().  ie)
102
103           sub AUTOLOAD
104           {
105               Image::ExifTool::DoAutoLoad($AUTOLOAD, @_);
106           }
107
108       ImageInfo
109
110       Obtain meta information from image.  This is the one step function for
111       obtaining meta information from an image.  Internally, "ImageInfo"
112       calls "ExtractInfo" to extract the information, "GetInfo" to generate
113       the information hash, and "GetTagList" for the returned tag list.
114
115           # Return meta information for 2 tags only (procedural)
116           $info = ImageInfo($filename, $tag1, $tag2);
117
118           # Return information about an open image file (object-oriented)
119           $info = $exifTool->ImageInfo(\*FILE);
120
121           # Return information from image data in memory for specified tags
122           %options = (PrintConv => 0);
123           @tagList = qw(filename imagesize xmp:creator exif:* -ifd1:*);
124           $info = ImageInfo(\$imageData, \@tagList, \%options);
125
126           # Extract information from an embedded thumbnail image
127           $info = ImageInfo('image.jpg', 'thumbnailimage');
128           $thumbInfo = ImageInfo($$info{ThumbnailImage});
129
130       Inputs:
131           "ImageInfo" is very flexible about the input arguments, and inter‐
132           prets them based on their type.  It may be called with one or more
133           arguments.  The one required argument is either a SCALAR (the image
134           file name), a file reference (a reference to the image file) or a
135           SCALAR reference (a reference to the image in memory).  Other argu‐
136           ments are optional.  The order of the arguments is not significant,
137           except that the first SCALAR is taken to be the file name unless a
138           file reference or scalar reference comes earlier in the argument
139           list.
140
141           Below is an explanation of how the "ImageInfo" function arguments
142           are interpreted:
143
144           ExifTool ref
145               "ImageInfo" may be called with an ExifTool object if desired.
146               The advantage of using the object-oriented form is that the
147               options may be set before calling "ImageInfo", and the object
148               may be used afterward to access member functions.  Must be the
149               first argument if used.
150
151           SCALAR
152               The first scalar argument is taken to be the file name unless
153               an earlier argument specified the image data via a file refer‐
154               ence (file ref) or data reference (SCALAR ref).  The remaining
155               scalar arguments are names of tags for requested information.
156               If no tags are specified, all possible information is
157               extracted.
158
159               Tag names are case-insensitive and may be prefixed by an
160               optional group name followed by a colon.  The group name may
161               begin with a family number (ie. '1IPTC:Keywords'), to restrict
162               matches to a specific family.  A tag name of '*' may be used,
163               thus allowing 'GROUP:*' to represent all tags in a specific
164               group, or a group name of '*' may be used, in which case all
165               available instances of the specified tag are returned regard‐
166               less of the "Duplicates" setting (ie. '*:WhiteBalance').  And
167               finally, a leading '-' indicates tags to be excluded (ie.
168               '-IFD1:*').
169
170               Note that keys in the returned information hash and elements of
171               the returned tag list are not necessarily the same as these tag
172               names -- group names are removed, the case may be changed, and
173               an instance number may be added.  For this reason it is best to
174               use either the keys of the returned hash or the elements of the
175               tag array when accessing the tag values.
176
177               See Image::ExifTool::TagNames for a complete list of ExifTool
178               tag names.
179
180           File ref
181               A reference to an open image file.  If you use this method (or
182               a SCALAR reference) to access information in an image, the
183               FileName and Directory tags will not be returned.  (Also, the
184               FileSize and FileModifyDate tags will not be returned unless it
185               is a plain file.)  Image processing begins at the current file
186               position, and on return the file position is unspecified.
187
188           SCALAR ref
189               A reference to image data in memory.
190
191           ARRAY ref
192               Reference to a list of tag names.  On entry, any elements in
193               the list are added to the list of requested tags.  Tags with
194               names beginning with '-' are excluded.  On return, this list is
195               updated to contain an ordered list of tag keys for all
196               extracted tags.
197
198           HASH ref
199               Reference to a hash containing the options settings.  See
200               "Options" documentation below for a list of available options.
201               Options specified as arguments to "ImageInfo" take precedence
202               over "Options" settings.
203
204       Return Values:
205           "ImageInfo" returns a reference to a hash of tag key/value pairs.
206           The tag keys are identifiers, which are similar to the tag names
207           but may have an embedded instance number if multiple tags with the
208           same name were extracted from the image.  Many of the ExifTool
209           functions require a tag key as an argument. Use "GetTagName" to get
210           the tag name for a given tag key.  Note that the case of the tag
211           names may not be the same as requested.  Here is a simple example
212           to print out the information returned by "ImageInfo":
213
214               foreach (sort keys %$info) {
215                   print "$_ => $$info{$_}\n";
216               }
217
218           Values of the returned hash are usually simple scalars, but a
219           scalar reference is used to indicate binary data and an array ref‐
220           erence may be used to indicate a list.  Lists of values are joined
221           by commas into a single string if and only if the PrintConv option
222           is enabled and the List option is disabled (which are the
223           defaults).  Note that binary values are not necessarily extracted
224           unless specifically requested or the Binary option is set.  If not
225           extracted the value is a reference to a string of the form "Binary
226           data ##### bytes".
227
228           The code below gives an example of how to handle these return val‐
229           ues, as well as illustrating the use of other ExifTool functions:
230
231               use Image::ExifTool;
232               my $exifTool = new Image::ExifTool;
233               $exifTool->Options(Unknown => 1);
234               my $info = $exifTool->ImageInfo('a.jpg');
235               my $group = '';
236               my $tag;
237               foreach $tag ($exifTool->GetFoundTags('Group0')) {
238                   if ($group ne $exifTool->GetGroup($tag)) {
239                       $group = $exifTool->GetGroup($tag);
240                       print "---- $group ----\n";
241                   }
242                   my $val = $info->{$tag};
243                   if (ref $val eq 'SCALAR') {
244                       if ($$val =~ /^Binary data/) {
245                           $val = "($$val)";
246                       } else {
247                           my $len = length($$val);
248                           $val = "(Binary data $len bytes)";
249                       }
250                   }
251                   printf("%-32s : %s\n", $exifTool->GetDescription($tag), $val);
252               }
253
254           As well as tags representing information extracted from the image,
255           the following tags generated by ExifTool may be returned:
256
257               ExifToolVersion - The ExifTool version number.
258
259               Error - An error message if the image could not be read.
260
261               Warning - A warning message if problems were encountered
262                         while extracting information from the image.
263
264       Options
265
266       Get/set ExifTool options.  This function can be called to set the
267       default options for an ExifTool object.  Options set this way are in
268       effect for all function calls but may be overridden by options passed
269       as arguments to a specific function.
270
271           # Exclude the 'OwnerName' tag from returned information
272           $exifTool->Options(Exclude => 'OwnerName');
273
274           # Only get information in EXIF or MakerNotes groups
275           $exifTool->Options(Group0 => ['EXIF', 'MakerNotes']);
276
277           # Ignore information from IFD1
278           $exifTool->Options(Group1 => '-IFD1');
279
280           # Sort by groups in family 2, and extract unknown tags
281           $exifTool->Options(Sort => 'Group2', Unknown => 1);
282
283           # Do not extract duplicate tag names
284           $oldSetting = $exifTool->Options(Duplicates => 0);
285
286           # Get current setting
287           $isVerbose = $exifTool->Options('Verbose');
288
289       Inputs:
290           0) ExifTool object reference.
291
292           1) Option parameter name.
293
294           2) [optional] Option parameter value (may be undef to clear
295           option).
296
297           3-N) [optional] Additional parameter/value pairs.
298
299       Option Parameters:
300           Binary
301               Flag to extract the value data for all binary tags.  Tag values
302               representing large binary data blocks (ie. ThumbnailImage) are
303               not necessarily extracted unless this option is set or the tag
304               is specifically requested by name.  Default is 0.
305
306           ByteOrder
307               The byte order for newly created EXIF segments when writing.
308               Note that if EXIF information already exists, the existing
309               order is maintained.  Valid values are 'MM', 'II' and undef.
310               If ByteOrder is not defined (the default), then the maker note
311               byte order is used (if they are being copied), otherwise big-
312               endian ('MM') order is assumed.  This can also be set via the
313               ExifByteOrder tag, but the ByteOrder option takes precedence if
314               both are set.
315
316           Charset
317               Character set for converting special characters.  Valid values
318               are:
319
320                 UTF8  - UTF-8 characters (the default)
321                 Latin - Windows Latin1 (cp1252)
322
323               Note that this option affects some types of information when
324               reading/writing the file and other types when getting/setting
325               tag values, so it must be defined for both types of access.
326
327           Compact
328               Flag to write compact output.  Default is 0.  The XMP specifi‐
329               cation suggests that the data be padded with blanks to allow
330               in-place editing.  By setting this flag, 2kB is saved for files
331               with XMP data.
332
333           Composite
334               Flag to calculate Composite tags automatically.  Default is 1.
335
336           Compress
337               Flag to write new values in compressed format if possible.  Has
338               no effect unless Compress::Zlib is installed.  Default is 0.
339
340           CoordFormat
341               Format for printing GPS coordinates.  This is a printf format
342               string with specifiers for degrees, minutes and seconds in that
343               order, however minutes and seconds may be omitted.  For exam‐
344               ple, the following table gives the output for the same coordi‐
345               nate using various formats:
346
347                       CoordFormat          Example Output
348                   -------------------    ------------------
349                   q{%d deg %d' %.2f"}    54 deg 59' 22.80"   (the default)
350                   q{%d deg %.4f min}     54 deg 59.3800 min
351                   q{%.6f degrees}        54.989667 degrees
352
353           DateFormat
354               Format for printing EXIF date/time.  See "strftime" in the
355               POSIX package for details about the format string.  The default
356               format is equivalent to "%Y:%m:%d %H:%M:%S".  If date can not
357               be converted, value is left unchanged unless the StrictDate
358               option is set.
359
360           Duplicates
361               Flag to preserve values of duplicate tags (instead of overwrit‐
362               ing existing value).  Default is 1.
363
364           Exclude
365               Exclude specified tags from tags extracted from an image.  The
366               option value is either a tag name or reference to a list of tag
367               names to exclude.  The case of tag names is not significant.
368               This option is ignored for specifically requested tags.  Tags
369               may also be excluded by preceeding their name with a '-' in the
370               arguments to "ImageInfo".
371
372           FastScan
373               Flag to increase speed of extracting information from JPEG
374               images.  With this option set, ExifTool will not scan to the
375               end of a JPEG image to check for an AFCP, CanonVRD, FotoSta‐
376               tion, PhotoMechanic, MIE or PreviewImage trailer.  Also, when
377               combined with the ScanForXMP option, prevents scanning for XMP
378               in recognized file types.  Default 0.
379
380           FixBase
381               Fix maker notes base offset.  A common problem with image edit‐
382               ing software is that offsets in the maker notes are not
383               adjusted properly when the file is modified.  This may cause
384               the wrong values to be extracted for some maker note entries
385               when reading the edited file.  FixBase specifies an integer
386               value to be added to the maker notes base offset.  It may also
387               be set to the empty string ('') for ExifTool will take its best
388               guess at the correct base, or undef (the default) for no base
389               adjustment.
390
391           Group#
392               Extract tags only for specified groups in family # (Group0
393               assumed if # not given).  The option value may be a single
394               group name or a reference to a list of groups.  Case is signif‐
395               icant in group names.  Specify a group to be excluded by pre‐
396               ceding group name with a '-'.  See "GetAllGroups" for a list of
397               available groups.
398
399           HtmlDump
400               Dump information in hex to dynamic HTML web page.  The value
401               may be 0-3 for increasingly larger limits on the maximum block
402               size.  Default is 0.  Output goes to the file specified by the
403               TextOut option (\*STDOUT by default).
404
405           HtmlDumpBase
406               Specifies base for HTML dump offsets.  If not defined, the
407               EXIF/TIFF base offset is used.  Set to 0 for absolute offsets.
408               Default is undef.
409
410           IgnoreMinorErrors
411               Flag to ignore minor errors.  Causes minor errors to be down‐
412               graded to warnings, and minor warnings to be ignored.  This
413               option is provided mainly to allow writing of files when minor
414               errors occur, but also allows thumbnail and preview images to
415               be extracted even if they don't have a recognizable header.
416               Minor errors/warnings are denoted by '[minor]' at the start of
417               the message.
418
419           List
420               Flag to extract lists of PrintConv values into arrays instead
421               of concatenating them into comma-separated strings.  Default is
422               0.
423
424           MakerNotes
425               Option to extract MakerNotes and other writable subdirectories
426               (such as PrintIM) as a data block.  Normally when the Maker‐
427               Notes are extracted they are rebuilt to include data outside
428               the boundaries of the original maker note data block, but a
429               value of 2 disables this feature.  Possible values are:
430
431                 0 - Do not extract writable subdirectories [default]
432                 1 - Extract and rebuild maker notes into self-contained block
433                 2 - Extract without rebuilding maker notes
434
435           MissingTagValue
436               Value for missing tags in expressions evaluated by "SetNewVal‐
437               uesFromFile".  If not set, a minor error is issued for missing
438               values, or the value is set to '' if "IgnoreMinorErrors" is
439               set.  Default is undef.
440
441           PrintConv
442               Flag to enable automatic print conversion.  Also enables
443               inverse print conversion for writing.  Default is 1.
444
445           ScanForXMP
446               Flag for scan all files (even unrecognized formats) for XMP
447               information unless XMP was already found in the file.  When
448               combined with the FastScan option, only unrecognized file types
449               are scanned for XMP.  Default is 0.
450
451           Sort
452               Specifies order to sort tags in returned list:
453
454                 Alpha  - Sort alphabetically
455                 File   - Sort in order that tags were found in the file
456                 Group# - Sort by tag group, where # is the group family
457                          number.  If # is not specified, Group0 is assumed.
458                          See GetGroup for a list of groups.
459                 Input  - Sort in same order as input tag arguments (default)
460
461           StrictDate
462               Flag to return undefined value for any date which can't be con‐
463               verted when the DateFormat option is used.  Default is 0.
464
465           TextOut
466               Output file reference for Verbose and HtmlDump options.
467               Default is \*STDOUT.
468
469           Unknown
470               Flag to get the values of unknown tags.  If set to 1, unknown
471               tags are extracted from EXIF (or other tagged-format) directo‐
472               ries.  If set to 2, unknown tags are also extracted from binary
473               data blocks.  Default is 0.
474
475           Verbose
476               Print verbose messages to file specified by TextOut option.
477               Value may be from 0 to 5 for increasingly verbose messages.
478               Default is 0.  With the verbose option set, messages are
479               printed to the console as the file is parsed.  Level 1 prints
480               the tag names and raw values.  Level 2 adds more details about
481               the tags.  Level 3 adds a hex dump of the tag data, but with
482               limits on the number of bytes dumped.  Levels 4 and 5 remove
483               the dump limit on tag values and JPEG segment data respec‐
484               tively.
485
486       Return Values:
487           The original value of the last specified parameter.
488
489       ClearOptions
490
491       Reset all options to their default values.
492
493           $exifTool->ClearOptions();
494
495       Inputs:
496           0) ExifTool object reference
497
498       Return Values:
499           (none)
500
501       ExtractInfo
502
503       Extract all meta information from an image.
504
505           $success = $exifTool->ExtractInfo('image.jpg', \%options);
506
507       Inputs:
508           "ExtractInfo" takes exactly the same arguments as "ImageInfo".  The
509           only difference is that a list of tag keys is not returned if an
510           ARRAY reference is given.  The following options are effective in
511           the call to "ExtractInfo":
512
513           Binary, Composite, DateFormat, Unknown and Verbose.
514
515       Return Value:
516           1 if image was valid, 0 otherwise (and 'Error' tag set).
517
518       GetInfo
519
520       "GetInfo" is called to return meta information after it has been
521       extracted from the image by a previous call to "ExtractInfo" or "Image‐
522       Info". This function may be called repeatedly after a single call to
523       "ExtractInfo" or "ImageInfo".
524
525           # Get image width and hieght only
526           $info = $exifTool->GetInfo('ImageWidth', 'ImageHeight');
527
528           # Get information for all tags in list (list updated with tags found)
529           $info = $exifTool->GetInfo(\@ioTagList);
530
531           # Get all information in Author or Location groups
532           $info = $exifTool->GetInfo({Group2 => ['Author', 'Location']});
533
534       Inputs:
535           Inputs are the same as "ExtractInfo" and "ImageInfo" except that an
536           image can not be specified.  Options in effect are:
537
538           Duplicates, Exclude, Group#, PrintConv (and Sort if tag list refer‐
539           ence is given).
540
541       Return Value:
542           Reference to information hash, the same as with "ImageInfo".
543
544       WriteInfo
545
546       Write meta information to a file.  The specified source file is rewrit‐
547       ten to the same-type destination file with new information as specified
548       by previous calls to "SetNewValue".  The necessary segments and/or
549       directories are created in the destination file as required to store
550       the specified information.  May be called repeatedly to write the same
551       information to additional files without the need to call "SetNewValue"
552       again.
553
554           # add information to a source file, writing output to new file
555           $exifTool->WriteInfo($srcfile, $dstfile);
556
557           # create XMP data file from scratch
558           $exifTool->WriteInfo(undef, $dstfile, 'XMP');
559
560           # edit file in place (you do have backups, right?)
561           $exifTool->WriteInfo($srcfile);
562
563       Inputs:
564           0) ExifTool object reference
565
566           1) Source file name, file reference, scalar reference, or undefined
567           to create a file from scratch
568
569           2) [optional] Destination file name, file or scalar reference
570
571           3) [optional] Destination file type
572
573       Return Value:
574           1 if file was written OK, 2 if file was written but no changes
575           made, 0 on file write error.
576
577           If an error code is returned, an Error tag is set and Get‐
578           Value('Error') can be called to obtain the error description.  A
579           Warning tag may be set even if this routine is successful.
580
581               $errorMessage = $exifTool->GetValue('Error');
582               $warningMessage = $exifTool->GetValue('Warning');
583
584       Notes:
585           The source file name may be undefined to create a file from scratch
586           (currently only XMP, ICC and MIE files can be created in this way).
587           If undefined, the destination file type is required unless the type
588           can be determined from the destination file name.
589
590           The destination file name may be undefined to edit a file in place
591           (make sure you have backups!).  If a destination file name is
592           given, the specified file must not exist because existing destina‐
593           tion files will not be overwritten.
594
595           The destination file type is only used if the source file is unde‐
596           fined.
597
598       CombineInfo
599
600       Combine information from more than one information hash into a single
601       hash.
602
603           $info = $exifTool->CombineInfo($info1, $info2, $info3);
604
605       Inputs:
606           0) ExifTool object reference
607
608           1-N) Information hash references
609
610       If the Duplicates option is disabled and duplicate tags exist, the
611       order of the hashes is significant.  In this case, the value used is
612       the first value found as the hashes are scanned in order of input.  The
613       Duplicates option is the only option that is in effect for this func‐
614       tion.
615
616       GetTagList
617
618       Get a sorted list of tags from the specified information hash or tag
619       list.
620
621           @tags = $exifTool->GetTagList($info, 'Group0');
622
623       Inputs:
624           0) ExifTool object reference,
625
626           1) [optional] Information hash reference or tag list reference,
627
628           2) [optional] Sort order ('File', 'Input', 'Alpha' or 'Group#').
629
630           If the information hash or tag list reference is not provided, then
631           the list of found tags from the last call to "ImageInfo", "Extract‐
632           Info" or "GetInfo" is used instead, and the result is the same as
633           if "GetFoundTags" was called.  If sort order is not specified, the
634           sort order is taken from the current options settings.
635
636       Return Values:
637           A list of tags in the specified order.
638
639       GetFoundTags
640
641       Get list of found tags in specified sort order.  The found tags are the
642       tags for the information obtained from the most recent call to "Image‐
643       Info", "ExtractInfo" or "GetInfo" for this object.
644
645           @tags = $exifTool->GetFoundTags('File');
646
647       Inputs:
648           0) ExifTool object reference
649
650           1) [optional] Sort order ('File', 'Input', 'Alpha' or 'Group#')
651
652           If sort order is not specified, the sort order from the ExifTool
653           options is used.
654
655       Return Values:
656           A list of tags in the specified order.
657
658       GetRequestedTags
659
660       Get list of requested tags.  These are the tags that were specified in
661       the arguments of the most recent call to "ImageInfo", "ExtractInfo" or
662       "GetInfo", including tags specified via a tag list reference. Shortcut
663       tags are expanded in the list.
664
665           @tags = $exifTool->GetRequestedTags();
666
667       Inputs:
668           (none)
669
670       Return Values:
671           List of requested tags in the same order that they were specified.
672           Note that this list will be empty if tags were not specifically
673           requested (ie. If extracting all tags).
674
675       GetValue
676
677       Get the value of a specified tag.  The returned value is either the
678       human-readable (PrintConv) value, the converted machine-readable (Val‐
679       ueConv) value, or the original raw (Raw) value.  If the value type is
680       not specified, the PrintConv value is returned if the PrintConv option
681       is set, otherwise the ValueConv value is returned.  The PrintConv val‐
682       ues are same as the values returned by "ImageInfo" and "GetInfo" in the
683       tag/value hash unless the PrintConv option is disabled.
684
685       Tags which represent lists of multiple values (as may happen with 'Key‐
686       words' for example) are handled specially.  In scalar context, the
687       returned PrintConv value for these tags is either a comma-separated
688       string of values or a list reference (depending on the List option set‐
689       ting), and the ValueConv value is always a list reference.  But in list
690       context, "GetValue" always returns the list itself.
691
692           # PrintConv example
693           my $val = $exifTool->GetValue($tag);
694           if (ref $val eq 'SCALAR') {
695               print "$tag = (unprintable value)\n";
696           } else {
697               print "$tag = $val\n";
698           }
699
700           # ValueConv examples
701           my $val = $exifTool->GetValue($tag, 'ValueConv');
702           if (ref $val eq 'ARRAY') {
703               print "$tag is a list of values\n";
704           } elsif (ref $val eq 'SCALAR') {
705               print "$tag represents binary data\n";
706           } else {
707               print "$tag is a simple scalar\n";
708           }
709
710           my @keywords = $exifTool->GetValue('Keywords', 'ValueConv');
711
712       Inputs:
713           0) ExifTool object reference
714
715           1) Tag key
716
717           2) [optional] Value type, 'PrintConv', 'ValueConv', 'Both' or 'Raw'
718
719           The default value type is 'PrintConv' if the PrintConv option is
720           set, otherwise the default is 'ValueConv'.  A value type of 'Both'
721           returns both ValueConv and PrintConv values as a list.
722
723       Return Values:
724           The value of the specified tag.  If the tag represents a list of
725           values and the List option is disabled then PrintConv returns a
726           comma separated string of values, otherwise a reference to the list
727           is returned in scalar context.  The list itself is returned in list
728           context.  Values may also be scalar references to binary data.
729
730           Note: It is possible for "GetValue" to return an undefined Value‐
731           Conv or PrintConv value (or an empty list in list context) even if
732           the tag exists, since it is possible for these conversions to yield
733           undefined values.
734
735       SetNewValue
736
737       Set the new value for a tag.  The routine may be called multiple times
738       to set the values of many tags before using "WriteInfo" to write the
739       new values to an image.
740
741       For list-type tags (like Keywords), either call repeatedly with the
742       same tag name for each value, or call with a reference to the list of
743       values.
744
745           # set a new value for a tag (errors go to STDERR)
746           $success = $exifTool->SetNewValue($tag, $value);
747
748           # set a new value and capture any error message
749           ($success, $errStr) = $exifTool->SetNewValue($tag, $value);
750
751           # delete information for specified tag if it exists in image
752           # (also resets AddValue and DelValue options for this tag)
753           $exifTool->SetNewValue($tag);
754
755           # reset all values from previous calls to SetNewValue()
756           $exifTool->SetNewValue();
757
758           # delete a specific keyword
759           $exifTool->SetNewValue('Keywords', $word, DelValue => 1);
760
761           # write a list of keywords
762           $exifTool->SetNewValue('Keywords', ['word1','word2']);
763
764           # add a keyword without replacing existing keywords
765           $exifTool->SetNewValue(Keywords => $word, AddValue => 1);
766
767           # set a tag in a specific group
768           $exifTool->SetNewValue(Headline => $val, Group => 'XMP');
769           $exifTool->SetNewValue('XMP:Headline' => $val);  # equivalent
770
771           # shift original date/time back by 1 hour
772           $exifTool->SetNewValue(DateTimeOriginal => '1:00', Shift => -1);
773
774       Inputs:
775           0) ExifTool object reference
776
777           1) [optional] Tag key or tag name, or undefined to clear all new
778           values.  A tag name of '*' can be used when deleting tags to delete
779           all tags, or all tags in a specified group.  The tag name may be
780           prefixed by group name, separated by a colon (ie. 'GROUP:TAG'),
781           which is equivalent to using a 'Group' option argument.
782
783           2) [optional] New value for tag.  Undefined to delete tag from
784           file.  May be a scalar, scalar reference, or list reference to set
785           a list of values.
786
787           3-N) [optional] SetNewValue options hash entries (see below)
788
789       SetNewValue Options:
790           Type
791               The type of value being set.  Valid values are PrintConv, Val‐
792               ueConv or Raw.  Default is PrintConv if the "PrintConv" Option
793               is set, otherwise ValueConv.
794
795           AddValue
796               Specifies that the value be added to an existing list rather
797               than replacing the list.  Valid values are 0 or 1.  Default is
798               0.
799
800           DelValue
801               Delete the existing tag if it has the specified value.  Valid
802               values are 0 or 1.  Default is 0.
803
804           Group
805               Specifies group name where tag should be written.  If not spec‐
806               ified, tag is written to highest priority group as specified by
807               "SetNewGroups".  Any family 0 or 1 group name may be used.
808               Case is not significant.
809
810           NoShortcut
811               Disables default behaviour of looking up tag in shortcuts if
812               not found otherwise.
813
814           Protected
815               Bit mask for tag protection levels to write.  Bit 0x01 allows
816               writing of 'unsafe' tags (ie. tags not copied automatically via
817               "SetNewValuesFromFile").  Bit 0x02 allows writing of 'pro‐
818               tected' tags, and should only be used internally by ExifTool.
819               See Image::ExifTool::TagNames, for a list of tag names indicat‐
820               ing 'unsafe' and 'protected' tags.  Default is 0.
821
822           Replace
823               Flag to replace the previous new value for this tag (ie.
824               replace the value set in a previous call to "SetNewValue").
825               Valid values are 0 (don't replace), 1 (replace with specified
826               new value) or 2 (reset previous new value only).
827
828           Shift
829               Shift the tag by the specified value.  Currently only date/time
830               tags can be shifted.  Undefined for no shift, 1 for a positive
831               shift, or -1 for a negative shift.  If 0, the shift is applied
832               only if the tag is shiftable.  In this case, the direction of
833               the shift is positive if AddValue is set, or negative if Del‐
834               Value is set.  Default is undef.  See Image::ExifTool::Shift.pl
835               for more information.
836
837       Return Values:
838           In scalar context, returns the number of tags set and error mes‐
839           sages are printed to STDERR.  In list context, returns the number
840           of tags set and the error string.
841
842       SetNewValuesFromFile
843
844       A very powerful routine that sets new values for tags from information
845       found in a specified file.
846
847           # set new values from all information in a file...
848           my $info = $exifTool->SetNewValuesFromFile($srcFile);
849           # ...then write these values to another image
850           my $result = $exifTool->WriteInfo($file2, $outFile);
851
852           # set all new values, preserving original groups
853           $exifTool->SetNewValuesFromFile($srcFile, '*:*');
854
855           # set specific information
856           $exifTool->SetNewValuesFromFile($srcFile, @tags);
857
858           # set new value from a different tag in specific group
859           $exifTool->SetNewValuesFromFile($fp, 'IPTC:Keywords>XMP-dc:Subject');
860
861           # add all IPTC keywords to XMP subject list
862           $exifTool->SetNewValuesFromFile($fp, 'IPTC:Keywords+>XMP-dc:Subject');
863
864           # set new value from an expression involving other tags
865           $exifTool->SetNewValuesFromFile($file,
866               'Comment<ISO=$ISO Aperture=$aperture Exposure=$shutterSpeed');
867
868       Inputs:
869           0) ExifTool object reference
870
871           1) File name, file reference, or scalar reference
872
873           2-N) [optional] List of tag names to set.  All writable tags are
874           set if none are specified.  The tag names are not case sensitive,
875           and may be prefixed by an optional family 0 or 1 group name, sepa‐
876           rated by a colon (ie. 'exif:iso').  A leading '-' indicates tags to
877           be excluded (ie. '-comment').  An asterisk ('*') may be used for
878           the tag name, and is useful when a group is specified to set all
879           tags from a group (ie. 'XMP:*').  A special feature allows tag
880           names of the form 'SRCTAG>DSTTAG' (or 'DSTTAG<SRCTAG') to be speci‐
881           fied to copy information to a tag with a different name or a speci‐
882           fied group.  Both 'SRCTAG' and 'DSTTAG' may use '*' and/or be pre‐
883           fixed by a group name (ie. 'modifyDate>fileModifyDate' or
884           '*>xmp:*').  Copied tags may also be added or deleted from a list
885           with arguments of the form 'SRCTAG+>DSTTAG' or 'SRCTAG->DSTTAG'.
886           Tags are evaluated in order, so exclusions apply only to tags
887           included earlier in the list.  An extension of this feature allows
888           the tag value to be set from an expression containing tag names
889           with leading '$' symbols (ie. 'Comment<Filename: $filename').
890           Braces '{}' may be used around the tag name to separate it from
891           subsequent text, and a '$$' is used to to represent a '$' symbol.
892           (The behaviour for missing tags in expressions is defined by the
893           "MissingTagValue" option.)
894
895           By default, this routine will commute information between same-
896           named tags in different groups, allowing information to be trans‐
897           lated between images with different formats.  This behaviour may be
898           modified by specifying a group name for extracted tags (even if '*'
899           is used as a group name), in which case the information is written
900           to the original group, unless redirected to a different group.
901           (For example, a tag name of '*:*' may be specified to copy all
902           information while preserving the original groups.)
903
904       Return Values:
905           A hash of information that was set successfully.  May include Warn‐
906           ing or Error entries if there were problems reading the input file.
907
908       Notes:
909           The PrintConv option applies to this routine, but it normally
910           should be left on to provide more reliable transfer of information
911           between groups.
912
913           If a preview image exists, it is not copied.  The preview image
914           must be transferred separately if desired.
915
916           When simply copying all information between files of the same type,
917           it is usually desirable to preserve the original groups by specify‐
918           ing '*:*' for the tags to set.
919
920       GetNewValues
921
922       Get list of new Raw values for the specified tag.  These are the values
923       that will be written to file.  Only tags which support a 'List' may
924       return more than one value.
925
926           $rawVal = $exifTool->GetNewValues($tag);
927
928           @rawVals = $exifTool->GetNewValues($tag);
929
930       Inputs:
931           0) ExifTool object reference
932
933           1) Tag key or tag name
934
935       Return Values:
936           List of new Raw tag values.  The list may be empty if the tag is
937           being deleted (ie. if SetNewValue was called without a value).
938
939       CountNewValues
940
941       Return the total number of new values set.
942
943           $numSet = $exifTool->CountNewValues();
944           ($numSet, $numPseudo) = $exifTool->CountNewValues();
945
946       Inputs:
947           0) ExifTool object reference
948
949       Return Values:
950           In scalar context, returns the total number of tags with new values
951           set.  In list context, also returns the number of "pseudo" tag val‐
952           ues which have been set.  "Pseudo" tags are tags like FileName and
953           FileModifyDate which are not contained within the file and can be
954           changed without rewriting the file.
955
956       SaveNewValues
957
958       Save state of new values to be later restored by "RestoreNewValues".
959
960           $exifTool->SaveNewValues();         # save state of new values
961           $exifTool->SetNewValue(ISO => 100); # set new value for ISO
962           $exifTool->WriteInfo($src, $dst1);  # write ISO + previous new values
963           $exifTool->RestoreNewValues();      # restore previous new values
964           $exifTool->WriteInfo($src, $dst2);  # write previous new values only
965
966       Inputs:
967           0) ExifTool object reference
968
969       Return Value:
970           None.
971
972       RestoreNewValues
973
974       Restore new values to the settings that existed when "SaveNewValues"
975       was last called.  May be called repeatedly after a single call to
976       "SaveNewValues".  See "SaveNewValues" above for an example.
977
978       Inputs:
979           0) ExifTool object reference
980
981       Return Value:
982           None.
983
984       SetFileModifyDate
985
986       Set the file modification time from the new value of the FileModifyDate
987       tag.
988
989           $result = $exifTool->SetFileModifyDate($file);
990
991       Inputs:
992           0) ExifTool object reference
993
994           1) File name
995
996           2) [optional] Base time if applying shift (days before $^T)
997
998       Return Value:
999           1 if the time was changed, 0 if nothing was done, or -1 if there
1000           was an error setting the time.
1001
1002       SetFileName
1003
1004       Set the file name and directory.  If not specified, the new file name
1005       is derived from the new values of the FileName and Directory tags.  If
1006       the FileName tag contains a '/', then the file is renamed into a new
1007       directory.  If FileName ends with '/', then it is taken as a directory
1008       name and the file is moved into the new directory.  The new value for
1009       the Directory tag takes precedence over any directory specified in
1010       FileName.
1011
1012           $result = $exifTool->SetFileName($file);
1013           $result = $exifTool->SetFileName($file, $newName);
1014
1015       Inputs:
1016           0) ExifTool object reference
1017
1018           1) Current file name
1019
1020           2) [optional] New file name
1021
1022       Return Value:
1023           1 if the file name or directory was changed, 0 if nothing was done,
1024           or -1 if there was an error renaming the file.
1025
1026       Notes:
1027           Will not overwrite existing files. New directories are created as
1028           necessary.
1029
1030       SetNewGroups
1031
1032       Set the order of the preferred groups when adding new information.  In
1033       subsequent calls to "SetNewValue", new information will be created in
1034       the first valid group of this list.  This has an impact only if the
1035       group is not specified when calling "SetNewValue" and if the tag name
1036       exists in more than one group.  The default order is EXIF, IPTC, XMP
1037       then MakerNotes.  Any family 0 group name may be used.  Case is not
1038       significant.
1039
1040           $exifTool->SetNewGroups('XMP','EXIF','IPTC');
1041
1042       Inputs:
1043           0) ExifTool object reference
1044
1045           1-N) Groups in order of priority.  If no groups are specified, the
1046           priorities are reset to the defaults.
1047
1048       Return Value:
1049           None.
1050
1051       GetNewGroups
1052
1053       Get current group priority list.
1054
1055           @groups = $exifTool->GetNewGroups();
1056
1057       Inputs:
1058           0) ExifTool object reference
1059
1060       Return Values:
1061           List of group names in order of write priority.  Highest priority
1062           first.
1063
1064       GetTagID
1065
1066       Get the ID for the specified tag.  The ID is the IFD tag number in EXIF
1067       information, the property name in XMP information, or the data offset
1068       in a binary data block. For some tags, such as Composite tags where
1069       there is no ID, an empty string is returned.
1070
1071           $id = $exifTool->GetTagID($tag);
1072
1073       Inputs:
1074           0) ExifTool object reference
1075
1076           1) Tag key
1077
1078       Return Values:
1079           Tag ID or '' of there is no ID for this tag.
1080
1081       GetDescription
1082
1083       Get description for specified tag.  This function will always return a
1084       defined value.  In the case where the description doesn't exist, the
1085       tag name is returned.
1086
1087       Inputs:
1088           0) ExifTool object reference
1089
1090           1) Tag key
1091
1092       Return Values:
1093           A description for the specified tag.
1094
1095       GetGroup
1096
1097       Get group name for specified tag.
1098
1099           $group = $exifTool->GetGroup($tag, 0);
1100
1101       Inputs:
1102           0) ExifTool object reference
1103
1104           1) Tag key
1105
1106           2) [optional] Group family number
1107
1108       Return Values:
1109           Group name (or 'Other' if tag has no group).  If no group family is
1110           specified, "GetGroup" returns the name of the group in family 0
1111           when called in scalar context, or the names of groups for all fami‐
1112           lies in list context. See "GetAllGroups" for a list of groups in
1113           each famly.
1114
1115       GetGroups
1116
1117       Get list of group names for specified information.
1118
1119           @groups = $exifTool->GetGroups($info, 2);
1120
1121       Inputs:
1122           0) ExifTool object reference
1123
1124           1) [optional] Info hash ref (default is all extracted info)
1125
1126           2) [optional] Group family number (default 0)
1127
1128       Return Values:
1129           List of group names in alphabetical order. If information hash is
1130           not specified, the group names are returned for all extracted
1131           information.
1132
1133       BuildCompositeTags
1134
1135       Builds composite tags from required tags.  The composite tags are con‐
1136       venience tags which are derived from the values of other tags.  This
1137       routine is called automatically by "ImageInfo" and "ExtractInfo" if the
1138       Composite option is set.
1139
1140       Inputs:
1141           0) ExifTool object reference
1142
1143       Return Values:
1144           (none)
1145
1146       Notes:
1147           Tag values are calculated in alphabetical order unless a tag
1148           Require's or Desire's another composite tag, in which case the cal‐
1149           culation is deferred until after the other tag is calculated. Com‐
1150           posite tags may need to read data from the image for their value to
1151           be determined, so for these "BuildCompositeTags" must be called
1152           while the image is available.  This is only a problem if "Image‐
1153           Info" is called with a filename (as opposed to a file reference or
1154           scalar reference) since in this case the file is closed before
1155           "ImageInfo" returns.  However if you enable the Composite option,
1156           "BuildCompositeTags" is called from within "ImageInfo" before the
1157           file is closed.
1158
1159       GetTagName [static]
1160
1161       Get name of tag from tag key.  This is a convenience function that
1162       strips the embedded instance number, if it exists, from the tag key.
1163
1164       Note: "static" in the heading above indicates that the function does
1165       not require an ExifTool object reference as the first argument.  All
1166       functions documented below are also static.
1167
1168           $tagName = Image::ExifTool::GetTagName($tag);
1169
1170       Inputs:
1171           0) Tag key
1172
1173       Return Value:
1174           Tag name.  This is the same as the tag key but has the instance
1175           number removed.
1176
1177       GetShortcuts [static]
1178
1179       Get a list of shortcut tags.
1180
1181       Inputs:
1182           (none)
1183
1184       Return Values:
1185           List of shortcut tags (as defined in Image::ExifTool::Shortcuts).
1186
1187       GetAllTags [static]
1188
1189       Get list of all available tag names.
1190
1191           @tagList = Image::ExifTool::GetAllTags($group);
1192
1193       Inputs:
1194           0) [optional] Group name
1195
1196       Return Values:
1197           A list of all available tags in alphabetical order, or all tags in
1198           specified group.  The group name is case insensitive, and any group
1199           in any family may be used except for EXIF family 1 groups (ie. the
1200           specific IFD).
1201
1202       GetWritableTags [static]
1203
1204       Get list of all writable tag names.
1205
1206           @tagList = Image::ExifTool::GetWritableTags($group);
1207
1208       Inputs:
1209           0) [optional] Group name
1210
1211       Return Values:
1212           A list of all writable tags in alphabetical order.  These are the
1213           tags for which values may be set through "SetNewValue".  If a group
1214           name is given, returns only writable tags in specified group.  The
1215           group name is case insensitive, and any group in any family may be
1216           used except for EXIF family 1 groups (ie. the specific IFD).
1217
1218       GetAllGroups [static]
1219
1220       Get list of all group names in specified family.
1221
1222           @groupList = Image::ExifTool::GetAllGroups($family);
1223
1224       Inputs:
1225           0) Group family number (0-2)
1226
1227       Return Values:
1228           A list of all groups in the specified family in alphabetical order.
1229
1230       Three families of groups are currently defined: 0, 1 and 2. Families 0
1231       and 1 are based on the file structure, and family 2 classifies informa‐
1232       tion based on the logical category to which the information refers.
1233
1234       Families 0 and 1 are similar except that family 1 is more specific, and
1235       sub-divides the EXIF, MakerNotes, XMP and ICC_Profile groups to give
1236       more detail about the specific location where the information was
1237       found.  The EXIF group is split up based on the specific IFD (Image
1238       File Directory), the MakerNotes group is divided into groups for each
1239       manufacturer, and the XMP group is separated based on the XMP namespace
1240       prefix.  Note that only common XMP namespaces are listed below but
1241       additional namespaces may be present in some XMP data.  Also note that
1242       the 'XMP-xmp...' group names may appear in the older form 'XMP-xap...'
1243       since these names evolved as the XMP standard was developed.  The
1244       ICC_Profile group is broken down to give information about the specific
1245       ICC_Profile tag from which multiple values were extracted.  As well,
1246       information extracted from the ICC_Profile header is separated into the
1247       ICC-header group.
1248
1249       Here is a complete list of groups for each family:
1250
1251       Family 0 (Information Type):
1252           AFCP, AIFF, APE, APP12, APP13, APP14, APP15, APP5, APP6, APP8, ASF,
1253           BMP, CanonVRD, Composite, DICOM, DNG, Ducky, EXIF, ExifTool, FLAC,
1254           File, Flash, FlashPix, FotoStation, GeoTiff, HTML, ICC_Profile,
1255           ID3, IPTC, JFIF, JPEG, Jpeg2000, Leaf, MIE, MIFF, MNG, MPC, MPEG,
1256           MakerNotes, Meta, PDF, PICT, PNG, PhotoMechanic, Photoshop, Post‐
1257           Script, PrintIM, QuickTime, RAF, RIFF, Real, SigmaRaw, Vorbis, XMP
1258
1259       Family 1 (Specific Location):
1260           AFCP, AIFF, APE, ASF, Adobe, AdobeCM, BMP, Canon, CanonCustom,
1261           CanonRaw, CanonVRD, Casio, Composite, DICOM, DNG, Ducky, EPPIM,
1262           ExifIFD, ExifTool, FLAC, File, Flash, FlashPix, FotoStation, Fuji‐
1263           Film, GPS, GeoTiff, GlobParamIFD, GraphConv, HP, HTML, HTML-dc,
1264           HTML-ncc, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt,
1265           ICC-header, ICC-meas, ICC-view, ICC_Profile, ID3, ID3v1, ID3v2_2,
1266           ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, InteropIFD, JFIF, JPEG, JVC,
1267           Jpeg2000, Kodak, KodakBordersIFD, KodakEffectsIFD, KyoceraRaw,
1268           Leaf, LeafSubIFD, MAC, MIE-Audio, MIE-Camera, MIE-Doc, MIE-Exten‐
1269           der, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image, MIE-Lens, MIE-Main,
1270           MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview, MIE-Thumbnail,
1271           MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MNG, MPC, MPEG, MakerNotes,
1272           MakerUnknown, MetaIFD, Minolta, MinoltaRaw, Nikon, NikonCapture,
1273           NikonPreview, NikonScan, Olympus, PDF, PICT, PNG, Panasonic, Pen‐
1274           tax, PhotoMechanic, Photoshop, PictureInfo, PostScript, PrintIM,
1275           QuickTime, RAF, RAF2, RIFF, RMETA, Real, Real-CONT, Real-MDPR,
1276           Real-PROP, Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Ricoh, SPIFF,
1277           SR2, SRF#, Sanyo, Sigma, SigmaRaw, Sony, SubIFD, Track#, Vorbis,
1278           XMP, XMP-DICOM, XMP-PixelLive, XMP-aux, XMP-cc, XMP-crs, XMP-dc,
1279           XMP-dex, XMP-exif, XMP-iptcCore, XMP-lr, XMP-mediapro, XMP-micro‐
1280           soft, XMP-pdf, XMP-photomech, XMP-photoshop, XMP-tiff, XMP-xmp,
1281           XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM, XMP-xmpPLUS, XMP-xmpRights, XMP-
1282           xmpTPg
1283
1284       Family 2 (Category):
1285           Audio, Author, Camera, Document, ExifTool, Image, Location, Other,
1286           Printing, Time, Unknown, Video
1287
1288       GetDeleteGroups [static]
1289
1290       Get list of all deletable group names.
1291
1292           @delGroups = Image::ExifTool::GetDeleteGroups();
1293
1294       Inputs:
1295           None.
1296
1297       Return Values:
1298           A list of deletable group names in alphabetical order.  The current
1299           list of deletable group names is:
1300
1301           AFCP, CIFF, CanonVRD, EXIF, ExifIFD, Ducky, File, FlashPix, Foto‐
1302           Station, GlobParamIFD, GPS, IFD0, IFD1, InteropIFD, ICC_Profile,
1303           IPTC, JFIF, MakerNotes, Meta, MetaIFD, MIE, PhotoMechanic, Photo‐
1304           shop, PNG, PrintIM, RMETA, SubIFD, Trailer, XMP
1305
1306           All names in this list are either family 0 or family 1 group names,
1307           with the exception of 'Trailer' which allows all trailers in JPEG
1308           and TIFF-format images to be deleted at once, including unknown
1309           trailers.  To schedule a group for deletion, call "SetNewValue"
1310           with an undefined value and a tag name like 'Trailer:*'.
1311
1312       GetFileType [static]
1313
1314       Get type of file given file name.
1315
1316           my $type = Image::ExifTool::GetFileType($filename);
1317           my $desc = Image::ExifTool::GetFileType($filename, 1);
1318
1319       Inputs:
1320           0) [optional] File name (or just an extension)
1321
1322           1) [optional]  Flag to return a description instead of a type
1323
1324       Return Value:
1325           A string, based on the file extension, which represents the type of
1326           file.  Returns undefined value if file type is not supported by
1327           ExifTool.  In array context, may return more than one file type if
1328           the file may be different formats.  Returns a list of extensions
1329           for all recognized file types if no input extension is specified.
1330
1331       CanWrite [static]
1332
1333       Can the specified file or file type be written?
1334
1335           my $writable = Image::ExifTool::CanWrite($filename);
1336
1337       Inputs:
1338           0) File name, file extension, or file type
1339
1340       Return Value:
1341           True if the specified file type can be written (edited).
1342
1343       CanCreate [static]
1344
1345       Can the specified file or file type be created?
1346
1347           my $creatable = Image::ExifTool::CanCreate($filename);
1348
1349       Inputs:
1350           0) File name, file extension, or file type
1351
1352       Return Value:
1353           True if the specified file type can be created from scratch.  Cur‐
1354           rently, this can only be done with XMP files.
1355

AUTHOR

1357       Copyright 2003-2007, Phil Harvey
1358
1359       This library is free software; you can redistribute it and/or modify it
1360       under the same terms as Perl itself.
1361

CREDITS

1363       Many people have helped in the development of ExifTool through their
1364       bug reports, comments and suggestions, and/or additions to the code.
1365       See html/index.html in the Image::ExifTool distribution package for a
1366       list of people who have contributed to this project.
1367

SEE ALSO

1369       exiftool(1), Image::ExifTool::TagNames(3pm), Image::ExifTool::Short‐
1370       cuts(3pm), Image::ExifTool::Shift.pl, Image::Info(3pm), Image::Meta‐
1371       Data::JPEG(3pm)
1372
1373
1374
1375perl v5.8.8                       2007-09-12                Image::ExifTool(3)
Impressum