1Image::ExifTool(3) User Contributed Perl Documentation Image::ExifTool(3)
2
3
4
6 Image::ExifTool - Read and write meta information
7
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
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
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
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
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
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
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)