exiftool_vendored 12.64.1 → 12.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +26 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +22 -15
- data/bin/lib/Image/ExifTool/Apple.pm +9 -5
- data/bin/lib/Image/ExifTool/BigTIFF.pm +8 -1
- data/bin/lib/Image/ExifTool/Canon.pm +3 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +8 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +561 -67
- data/bin/lib/Image/ExifTool/NikonCustom.pm +862 -61
- data/bin/lib/Image/ExifTool/PDF.pm +18 -8
- data/bin/lib/Image/ExifTool/QuickTime.pm +18 -10
- data/bin/lib/Image/ExifTool/Samsung.pm +227 -227
- data/bin/lib/Image/ExifTool/Sony.pm +128 -24
- data/bin/lib/Image/ExifTool/TagLookup.pm +4607 -4591
- data/bin/lib/Image/ExifTool/TagNames.pod +465 -21
- data/bin/lib/Image/ExifTool/Writer.pl +7 -2
- data/bin/lib/Image/ExifTool.pm +112 -92
- data/bin/lib/Image/ExifTool.pod +26 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -184
@@ -2025,7 +2025,7 @@ sub SetFileName($$;$$$)
|
|
2025
2025
|
# protect against empty file name
|
2026
2026
|
length $newName or $self->Warn('New file name is empty'), return -1;
|
2027
2027
|
# don't replace existing file
|
2028
|
-
if ($self->Exists($newName) and (not defined $usedFlag or $usedFlag)) {
|
2028
|
+
if ($self->Exists($newName, 1) and (not defined $usedFlag or $usedFlag)) {
|
2029
2029
|
if ($file ne $newName or $opt =~ /Link$/) {
|
2030
2030
|
# allow for case-insensitive filesystem
|
2031
2031
|
if ($opt =~ /Link$/ or not $self->IsSameFile($file, $newName)) {
|
@@ -2404,7 +2404,7 @@ sub WriteInfo($$;$$)
|
|
2404
2404
|
$outBuff = '';
|
2405
2405
|
$outRef = \$outBuff;
|
2406
2406
|
$outPos = 0;
|
2407
|
-
} elsif ($self->Exists($outfile)) {
|
2407
|
+
} elsif ($self->Exists($outfile, 1)) {
|
2408
2408
|
$self->Error("File already exists: $outfile");
|
2409
2409
|
} elsif ($self->Open(\*EXIFTOOL_OUTFILE, $outfile, '>')) {
|
2410
2410
|
$outRef = \*EXIFTOOL_OUTFILE;
|
@@ -4919,6 +4919,11 @@ sub InverseDateTime($$;$$)
|
|
4919
4919
|
my $fs = ($fmt =~ s/%f$// and $val =~ s/(\.\d+)\s*$//) ? $1 : '';
|
4920
4920
|
my ($lib, $wrn, @a);
|
4921
4921
|
TryLib: for ($lib=$strptimeLib; ; $lib='') {
|
4922
|
+
# handle %s format ourself (not supported in Fedora, see forum15032)
|
4923
|
+
if ($fmt eq '%s') {
|
4924
|
+
$val = ConvertUnixTime($val, 1);
|
4925
|
+
last;
|
4926
|
+
}
|
4922
4927
|
if (not $lib) {
|
4923
4928
|
last unless $$self{OPTIONS}{StrictDate};
|
4924
4929
|
warn $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n";
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
|
30
30
|
%static_vars);
|
31
31
|
|
32
|
-
$VERSION = '12.
|
32
|
+
$VERSION = '12.65';
|
33
33
|
$RELEASE = '';
|
34
34
|
@ISA = qw(Exporter);
|
35
35
|
%EXPORT_TAGS = (
|
@@ -126,7 +126,7 @@ sub MakeTiffHeader($$$$;$$);
|
|
126
126
|
sub SplitFileName($);
|
127
127
|
sub EncodeFileName($$;$);
|
128
128
|
sub Open($*$;$);
|
129
|
-
sub Exists(
|
129
|
+
sub Exists($$;$);
|
130
130
|
sub IsDirectory($$);
|
131
131
|
sub Rename($$$);
|
132
132
|
sub Unlink($@);
|
@@ -1052,6 +1052,93 @@ my %xmpShorthandOpt = ( 0 => 'None', 1 => 'Shorthand', 2 => ['Shorthand','OneDes
|
|
1052
1052
|
maccroatian => 'MacCroatian', cp10082 => 'MacCroatian',
|
1053
1053
|
);
|
1054
1054
|
|
1055
|
+
# list of available options
|
1056
|
+
# +-----------------------------------------------------+
|
1057
|
+
# ! DON'T FORGET!! When adding any new option, must !
|
1058
|
+
# ! decide how it is handled in SetNewValuesFromFile() !
|
1059
|
+
# +-----------------------------------------------------+
|
1060
|
+
# (Note: All options must exist in this lookup, even if undefined,
|
1061
|
+
# to facilitate case-insensitive options. 'Group#' is handled specially)
|
1062
|
+
my @availableOptions = (
|
1063
|
+
[ 'Binary', undef, 'flag to extract binary values even if tag not specified' ],
|
1064
|
+
[ 'ByteOrder', undef, 'default byte order when creating EXIF information' ],
|
1065
|
+
[ 'Charset', 'UTF8', 'character set for converting Unicode characters' ],
|
1066
|
+
[ 'CharsetEXIF', undef, 'internal EXIF "ASCII" string encoding' ],
|
1067
|
+
[ 'CharsetFileName', undef, 'external encoding for file names' ],
|
1068
|
+
[ 'CharsetID3', 'Latin','internal ID3v1 character set' ],
|
1069
|
+
[ 'CharsetIPTC', 'Latin','fallback IPTC character set if no CodedCharacterSet' ],
|
1070
|
+
[ 'CharsetPhotoshop', 'Latin','internal encoding for Photoshop resource names' ],
|
1071
|
+
[ 'CharsetQuickTime', 'MacRoman', 'internal QuickTime string encoding' ],
|
1072
|
+
[ 'CharsetRIFF', 0, 'internal RIFF string encoding (0=default to Latin)' ],
|
1073
|
+
[ 'Compact', { }, 'write compact XMP' ],
|
1074
|
+
[ 'Composite', 1, 'flag to calculate Composite tags' ],
|
1075
|
+
[ 'Compress', undef, 'flag to write new values as compressed if possible' ],
|
1076
|
+
[ 'CoordFormat', undef, 'GPS lat/long coordinate format' ],
|
1077
|
+
[ 'DateFormat', undef, 'format for date/time' ],
|
1078
|
+
[ 'Duplicates', 1, 'flag to save duplicate tag values' ],
|
1079
|
+
[ 'Escape', undef, 'escape special characters' ],
|
1080
|
+
[ 'Exclude', undef, 'tags to exclude' ],
|
1081
|
+
[ 'ExtendedXMP', 1, 'strategy for reading extended XMP' ],
|
1082
|
+
[ 'ExtractEmbedded', undef, 'flag to extract information from embedded documents' ],
|
1083
|
+
[ 'FastScan', undef, 'flag to avoid scanning for trailer' ],
|
1084
|
+
[ 'Filter', undef, 'output filter for all tag values' ],
|
1085
|
+
[ 'FilterW', undef, 'input filter when writing tag values' ],
|
1086
|
+
[ 'FixBase', undef, 'fix maker notes base offsets' ],
|
1087
|
+
[ 'GeoMaxIntSecs', 1800, 'geotag maximum interpolation time (secs)' ],
|
1088
|
+
[ 'GeoMaxExtSecs', 1800, 'geotag maximum extrapolation time (secs)' ],
|
1089
|
+
[ 'GeoMaxHDOP', undef, 'geotag maximum HDOP' ],
|
1090
|
+
[ 'GeoMaxPDOP', undef, 'geotag maximum PDOP' ],
|
1091
|
+
[ 'GeoMinSats', undef, 'geotag minimum satellites' ],
|
1092
|
+
[ 'GeoSpeedRef', undef, 'geotag GPSSpeedRef' ],
|
1093
|
+
[ 'GlobalTimeShift', undef, 'apply time shift to all extracted date/time values' ],
|
1094
|
+
[ 'Group#', undef, 'return tags for specified groups in family #' ],
|
1095
|
+
[ 'HexTagIDs', 0, 'use hex tag ID\'s in family 7 group names' ],
|
1096
|
+
[ 'HtmlDump', 0, 'HTML dump (0-3, higher # = bigger limit)' ],
|
1097
|
+
[ 'HtmlDumpBase', undef, 'base address for HTML dump' ],
|
1098
|
+
[ 'IgnoreMinorErrors',undef, 'ignore minor errors when reading/writing' ],
|
1099
|
+
[ 'IgnoreTags', undef, 'list of tags to ignore when extracting' ],
|
1100
|
+
[ 'ImageHashType', 'MD5', 'image hash algorithm' ],
|
1101
|
+
[ 'Lang', $defaultLang, 'localized language for descriptions etc' ],
|
1102
|
+
[ 'LargeFileSupport', undef, 'flag indicating support of 64-bit file offsets' ],
|
1103
|
+
[ 'List', undef, '[deprecated, use ListSplit and ListJoin instead]' ],
|
1104
|
+
[ 'ListItem', undef, 'used to return a specific item from lists' ],
|
1105
|
+
[ 'ListJoin', ', ', 'join lists together with this separator' ],
|
1106
|
+
[ 'ListSep', ', ', '[deprecated, use ListSplit and ListJoin instead]' ],
|
1107
|
+
[ 'ListSplit', undef, 'regex for splitting list-type tag values when writing' ],
|
1108
|
+
[ 'MakerNotes', undef, 'extract maker notes as a block' ],
|
1109
|
+
[ 'MDItemTags', undef, 'extract MacOS metadata item tags' ],
|
1110
|
+
[ 'MissingTagValue', undef, 'value for missing tags when expanded in expressions' ],
|
1111
|
+
[ 'NoMultiExif', undef, 'raise error when writing multi-segment EXIF' ],
|
1112
|
+
[ 'NoPDFList', undef, 'flag to avoid splitting PDF List-type tag values' ],
|
1113
|
+
[ 'NoWarning', undef, 'regular expression for warnings to suppress' ],
|
1114
|
+
[ 'Password', undef, 'password for password-protected PDF documents' ],
|
1115
|
+
[ 'PrintConv', 1, 'flag to enable print conversion' ],
|
1116
|
+
[ 'QuickTimeHandler', 1, 'flag to add mdir Handler to newly created Meta box' ],
|
1117
|
+
[ 'QuickTimePad', undef, 'flag to preserve padding of QuickTime CR3 tags' ],
|
1118
|
+
[ 'QuickTimeUTC', undef, 'assume that QuickTime date/time tags are stored as UTC' ],
|
1119
|
+
[ 'RequestAll', undef, 'extract all tags that must be specifically requested' ],
|
1120
|
+
[ 'RequestTags', undef, 'extra tags to request (on top of those in the tag list)' ],
|
1121
|
+
[ 'SaveFormat', undef, 'save family 6 tag TIFF format' ],
|
1122
|
+
[ 'SavePath', undef, 'save family 5 location path' ],
|
1123
|
+
[ 'ScanForXMP', undef, 'flag to scan for XMP information in all files' ],
|
1124
|
+
[ 'Sort', 'Input','order to sort found tags (Input, File, Tag, Descr, Group#)' ],
|
1125
|
+
[ 'Sort2', 'File', 'secondary sort order for tags in a group (File, Tag, Descr)' ],
|
1126
|
+
[ 'StrictDate', undef, 'flag to return undef for invalid date conversions' ],
|
1127
|
+
[ 'Struct', undef, 'return structures as hash references' ],
|
1128
|
+
[ 'StructFormat', undef, 'format for structure serialization when reading/writing' ],
|
1129
|
+
[ 'SystemTags', undef, 'extract additional File System tags' ],
|
1130
|
+
[ 'TextOut', \*STDOUT, 'file for Verbose/HtmlDump output' ],
|
1131
|
+
[ 'TimeZone', undef, 'local time zone' ],
|
1132
|
+
[ 'Unknown', 0, 'flag to get values of unknown tags (0-2)' ],
|
1133
|
+
[ 'UserParam', { }, 'user parameters for additional user-defined tag values' ],
|
1134
|
+
[ 'Validate', undef, 'perform additional validation' ],
|
1135
|
+
[ 'Verbose', 0, 'print verbose messages (0-5, higher # = more verbose)' ],
|
1136
|
+
[ 'WriteMode', 'wcg', 'enable all write modes by default' ],
|
1137
|
+
[ 'XAttrTags', undef, 'extract MacOS extended attribute tags' ],
|
1138
|
+
[ 'XMPAutoConv', 1, 'automatic conversion of unknown XMP tag values' ],
|
1139
|
+
[ 'XMPShorthand', 0, '[deprecated, use Compact=Shorthand instead]' ],
|
1140
|
+
);
|
1141
|
+
|
1055
1142
|
# default family 0 group priority for writing
|
1056
1143
|
# (NOTE: tags in groups not specified here will not be written unless
|
1057
1144
|
# overridden by the module or specified when writing)
|
@@ -2368,92 +2455,11 @@ sub ClearOptions($)
|
|
2368
2455
|
local $_;
|
2369
2456
|
my $self = shift;
|
2370
2457
|
|
2371
|
-
|
2372
|
-
|
2373
|
-
#
|
2374
|
-
|
2375
|
-
|
2376
|
-
# (Note: All options must exist in this lookup, even if undefined,
|
2377
|
-
# to facilitate case-insensitive options. 'Group#' is handled specially)
|
2378
|
-
$$self{OPTIONS} = {
|
2379
|
-
Binary => undef, # flag to extract binary values even if tag not specified
|
2380
|
-
ByteOrder => undef, # default byte order when creating EXIF information
|
2381
|
-
Charset => 'UTF8', # character set for converting Unicode characters
|
2382
|
-
CharsetEXIF => undef, # internal EXIF "ASCII" string encoding
|
2383
|
-
CharsetFileName => undef, # external encoding for file names
|
2384
|
-
CharsetID3 => 'Latin', # internal ID3v1 character set
|
2385
|
-
CharsetIPTC => 'Latin', # fallback IPTC character set if no CodedCharacterSet
|
2386
|
-
CharsetPhotoshop => 'Latin', # internal encoding for Photoshop resource names
|
2387
|
-
CharsetQuickTime => 'MacRoman', # internal QuickTime string encoding
|
2388
|
-
CharsetRIFF => 0, # internal RIFF string encoding (0=default to Latin)
|
2389
|
-
Compact => { }, # write compact XMP
|
2390
|
-
Composite => 1, # flag to calculate Composite tags
|
2391
|
-
Compress => undef, # flag to write new values as compressed if possible
|
2392
|
-
CoordFormat => undef, # GPS lat/long coordinate format
|
2393
|
-
DateFormat => undef, # format for date/time
|
2394
|
-
Duplicates => 1, # flag to save duplicate tag values
|
2395
|
-
Escape => undef, # escape special characters
|
2396
|
-
Exclude => undef, # tags to exclude
|
2397
|
-
ExtendedXMP => 1, # strategy for reading extended XMP
|
2398
|
-
ExtractEmbedded =>undef,# flag to extract information from embedded documents
|
2399
|
-
FastScan => undef, # flag to avoid scanning for trailer
|
2400
|
-
Filter => undef, # output filter for all tag values
|
2401
|
-
FilterW => undef, # input filter when writing tag values
|
2402
|
-
FixBase => undef, # fix maker notes base offsets
|
2403
|
-
GeoMaxIntSecs => 1800, # geotag maximum interpolation time (secs)
|
2404
|
-
GeoMaxExtSecs => 1800, # geotag maximum extrapolation time (secs)
|
2405
|
-
GeoMaxHDOP => undef, # geotag maximum HDOP
|
2406
|
-
GeoMaxPDOP => undef, # geotag maximum PDOP
|
2407
|
-
GeoMinSats => undef, # geotag minimum satellites
|
2408
|
-
GeoSpeedRef => undef, # geotag GPSSpeedRef
|
2409
|
-
GlobalTimeShift => undef, # apply time shift to all extracted date/time values
|
2410
|
-
# Group# => undef, # return tags for specified groups in family #
|
2411
|
-
HexTagIDs => 0, # use hex tag ID's in family 7 group names
|
2412
|
-
HtmlDump => 0, # HTML dump (0-3, higher # = bigger limit)
|
2413
|
-
HtmlDumpBase => undef, # base address for HTML dump
|
2414
|
-
IgnoreMinorErrors => undef, # ignore minor errors when reading/writing
|
2415
|
-
IgnoreTags => undef, # list of tags to ignore when extracting
|
2416
|
-
ImageHashType => 'MD5', # image hash algorithm
|
2417
|
-
Lang => $defaultLang,# localized language for descriptions etc
|
2418
|
-
LargeFileSupport => undef, # flag indicating support of 64-bit file offsets
|
2419
|
-
List => undef, # extract lists of PrintConv values into arrays [no longer documented]
|
2420
|
-
ListItem => undef, # used to return a specific item from lists
|
2421
|
-
ListJoin => ', ', # join lists together with this separator
|
2422
|
-
ListSep => ', ', # list item separator [no longer documented]
|
2423
|
-
ListSplit => undef, # regex for splitting list-type tag values when writing
|
2424
|
-
MakerNotes => undef, # extract maker notes as a block
|
2425
|
-
MDItemTags => undef, # extract MacOS metadata item tags
|
2426
|
-
MissingTagValue =>undef,# value for missing tags when expanded in expressions
|
2427
|
-
NoMultiExif => undef, # raise error when writing multi-segment EXIF
|
2428
|
-
NoPDFList => undef, # flag to avoid splitting PDF List-type tag values
|
2429
|
-
NoWarning => undef, # regular expression for warnings to suppress
|
2430
|
-
Password => undef, # password for password-protected PDF documents
|
2431
|
-
PrintConv => 1, # flag to enable print conversion
|
2432
|
-
QuickTimeHandler => 1, # flag to add mdir Handler to newly created Meta box
|
2433
|
-
QuickTimePad=> undef, # flag to preserve padding of QuickTime CR3 tags
|
2434
|
-
QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
|
2435
|
-
RequestAll => undef, # extract all tags that must be specifically requested
|
2436
|
-
RequestTags => undef, # extra tags to request (on top of those in the tag list)
|
2437
|
-
SaveFormat => undef, # save family 6 tag TIFF format
|
2438
|
-
SavePath => undef, # save family 5 location path
|
2439
|
-
ScanForXMP => undef, # flag to scan for XMP information in all files
|
2440
|
-
Sort => 'Input', # order to sort found tags (Input, File, Tag, Descr, Group#)
|
2441
|
-
Sort2 => 'File', # secondary sort order for tags in a group (File, Tag, Descr)
|
2442
|
-
StrictDate => undef, # flag to return undef for invalid date conversions
|
2443
|
-
Struct => undef, # return structures as hash references
|
2444
|
-
StructFormat=> undef, # format for structure serialization when reading/writing
|
2445
|
-
SystemTags => undef, # extract additional File System tags
|
2446
|
-
TextOut => \*STDOUT,# file for Verbose/HtmlDump output
|
2447
|
-
TimeZone => undef, # local time zone
|
2448
|
-
Unknown => 0, # flag to get values of unknown tags (0-2)
|
2449
|
-
UserParam => { }, # user parameters for additional user-defined tag values
|
2450
|
-
Validate => undef, # perform additional validation
|
2451
|
-
Verbose => 0, # print verbose messages (0-5, higher # = more verbose)
|
2452
|
-
WriteMode => 'wcg', # enable all write modes by default
|
2453
|
-
XAttrTags => undef, # extract MacOS extended attribute tags
|
2454
|
-
XMPAutoConv => 1, # automatic conversion of unknown XMP tag values
|
2455
|
-
XMPShorthand=> 0, # (unused, but needed for backward compatibility)
|
2456
|
-
};
|
2458
|
+
$$self{OPTIONS} = { }; # clear all options
|
2459
|
+
|
2460
|
+
# load default options
|
2461
|
+
$$self{OPTIONS}{$$_[0]} = $$_[1] foreach @availableOptions;
|
2462
|
+
|
2457
2463
|
# keep necessary member variables in sync with options
|
2458
2464
|
delete $$self{CUR_LANG};
|
2459
2465
|
delete $$self{ESCAPE_PROC};
|
@@ -3890,6 +3896,15 @@ sub GetCompositeTagInfo($)
|
|
3890
3896
|
return $Image::ExifTool::Composite{$compositeID{$tag}[0]};
|
3891
3897
|
}
|
3892
3898
|
|
3899
|
+
#------------------------------------------------------------------------------
|
3900
|
+
# Return List ExifTool API options
|
3901
|
+
# Returns: 0) reference to list of available options -- each entry is a list
|
3902
|
+
# [0=option name, 1=default value, 2=description]
|
3903
|
+
sub AvailableOptions()
|
3904
|
+
{
|
3905
|
+
return \@availableOptions;
|
3906
|
+
}
|
3907
|
+
|
3893
3908
|
#------------------------------------------------------------------------------
|
3894
3909
|
# Get tag name (removes copy index)
|
3895
3910
|
# Inputs: 0) Tag key
|
@@ -4374,11 +4389,11 @@ sub Open($*$;$)
|
|
4374
4389
|
|
4375
4390
|
#------------------------------------------------------------------------------
|
4376
4391
|
# Check to see if a file exists (with Windows Unicode support)
|
4377
|
-
# Inputs: 0) ExifTool ref, 1) file name
|
4392
|
+
# Inputs: 0) ExifTool ref, 1) file name, 2) flag if we are writing this file
|
4378
4393
|
# Returns: true if file exists
|
4379
|
-
sub Exists(
|
4394
|
+
sub Exists($$;$)
|
4380
4395
|
{
|
4381
|
-
my ($self, $file) = @_;
|
4396
|
+
my ($self, $file, $writing) = @_;
|
4382
4397
|
|
4383
4398
|
if ($self->EncodeFileName($file)) {
|
4384
4399
|
local $SIG{'__WARN__'} = \&SetWarning;
|
@@ -4388,10 +4403,12 @@ sub Exists($$)
|
|
4388
4403
|
Win32API::File::OPEN_EXISTING(), 0, []) };
|
4389
4404
|
return 0 unless $wh;
|
4390
4405
|
eval { Win32API::File::CloseHandle($wh) };
|
4391
|
-
}
|
4406
|
+
} elsif ($writing) {
|
4392
4407
|
# (named pipes already exist, but we pretend that they don't
|
4393
4408
|
# so we will be able to write them, so test with for pipe -p)
|
4394
4409
|
return(-e $file and not -p $file);
|
4410
|
+
} else {
|
4411
|
+
return(-e $file);
|
4395
4412
|
}
|
4396
4413
|
return 1;
|
4397
4414
|
}
|
@@ -4894,6 +4911,7 @@ sub SetFoundTags($)
|
|
4894
4911
|
$groupList = [ $$options{$groupOpt} ];
|
4895
4912
|
}
|
4896
4913
|
foreach (@$groupList) {
|
4914
|
+
next unless defined $_;
|
4897
4915
|
# groups have priority in order they were specified
|
4898
4916
|
++$wantOrder;
|
4899
4917
|
my ($groupName, $want);
|
@@ -7836,6 +7854,8 @@ sub DoProcessTIFF($$;$)
|
|
7836
7854
|
return 1;
|
7837
7855
|
}
|
7838
7856
|
}
|
7857
|
+
} elsif ($fileType eq 'ARW') {
|
7858
|
+
$$self{LOW_PRIORITY_DIR}{IFD1} = 1; # lower priority of IFD1 tags in ARW files
|
7839
7859
|
}
|
7840
7860
|
# we have a valid TIFF (or whatever) file
|
7841
7861
|
if ($fileType and not $$self{VALUE}{FileType}) {
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -1463,7 +1463,9 @@ value should always exist if the tag exists.
|
|
1463
1463
|
|
1464
1464
|
Set the new value for a tag. The routine may be called multiple times to
|
1465
1465
|
set the values of many tags before using L</WriteInfo> to write the new
|
1466
|
-
values to an image.
|
1466
|
+
values to an image. These values remain queued for writing to subsequent
|
1467
|
+
files until L</SetNewValue> is called without arguments to reset the queued
|
1468
|
+
values.
|
1467
1469
|
|
1468
1470
|
For list-type tags (like Keywords), either call repeatedly with the same tag
|
1469
1471
|
name for each value, or call with a reference to the list of values.
|
@@ -2273,6 +2275,29 @@ within L</ImageInfo>, before the file is closed.
|
|
2273
2275
|
|
2274
2276
|
=back
|
2275
2277
|
|
2278
|
+
=head2 AvailableOptions [static]
|
2279
|
+
|
2280
|
+
Get a list of available API options. (See L</Options> for option details.)
|
2281
|
+
|
2282
|
+
=over 4
|
2283
|
+
|
2284
|
+
=item Inputs:
|
2285
|
+
|
2286
|
+
(none)
|
2287
|
+
|
2288
|
+
=item Return Values:
|
2289
|
+
|
2290
|
+
Reference to list of available options. Each entry in the list is a list
|
2291
|
+
reference with 3 items: 0=Option name, 1=Default value, 2=Description.
|
2292
|
+
|
2293
|
+
my $opts = Image::ExifTool::<b>AvailableOptions</b>();
|
2294
|
+
foreach (@$opts) {
|
2295
|
+
my ($optionName, $defaultValue, $description) = @$_;
|
2296
|
+
...
|
2297
|
+
}
|
2298
|
+
|
2299
|
+
=back
|
2300
|
+
|
2276
2301
|
=head2 GetTagName [static]
|
2277
2302
|
|
2278
2303
|
Get name of tag from tag key. This is a convenience function that
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.65.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-08-
|
12
|
+
date: 2023-08-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|
@@ -25,188 +25,6 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 0.7.0
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: bundler
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
35
|
-
type: :development
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: minitest
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "<="
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: 5.18.1
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "<="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: 5.18.1
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: minitest-great_expectations
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '0'
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: minitest-reporters
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: nokogiri
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - ">="
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: rake
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: rubocop
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rubocop-minitest
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - ">="
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '0'
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '0'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: rubocop-rake
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
154
|
-
- !ruby/object:Gem::Dependency
|
155
|
-
name: simplecov
|
156
|
-
requirement: !ruby/object:Gem::Requirement
|
157
|
-
requirements:
|
158
|
-
- - ">="
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '0'
|
161
|
-
type: :development
|
162
|
-
prerelease: false
|
163
|
-
version_requirements: !ruby/object:Gem::Requirement
|
164
|
-
requirements:
|
165
|
-
- - ">="
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
version: '0'
|
168
|
-
- !ruby/object:Gem::Dependency
|
169
|
-
name: simplecov-console
|
170
|
-
requirement: !ruby/object:Gem::Requirement
|
171
|
-
requirements:
|
172
|
-
- - ">="
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '0'
|
175
|
-
type: :development
|
176
|
-
prerelease: false
|
177
|
-
version_requirements: !ruby/object:Gem::Requirement
|
178
|
-
requirements:
|
179
|
-
- - ">="
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '0'
|
182
|
-
- !ruby/object:Gem::Dependency
|
183
|
-
name: simplecov_json_formatter
|
184
|
-
requirement: !ruby/object:Gem::Requirement
|
185
|
-
requirements:
|
186
|
-
- - ">="
|
187
|
-
- !ruby/object:Gem::Version
|
188
|
-
version: '0'
|
189
|
-
type: :development
|
190
|
-
prerelease: false
|
191
|
-
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
requirements:
|
193
|
-
- - ">="
|
194
|
-
- !ruby/object:Gem::Version
|
195
|
-
version: '0'
|
196
|
-
- !ruby/object:Gem::Dependency
|
197
|
-
name: yard
|
198
|
-
requirement: !ruby/object:Gem::Requirement
|
199
|
-
requirements:
|
200
|
-
- - ">="
|
201
|
-
- !ruby/object:Gem::Version
|
202
|
-
version: '0'
|
203
|
-
type: :development
|
204
|
-
prerelease: false
|
205
|
-
version_requirements: !ruby/object:Gem::Requirement
|
206
|
-
requirements:
|
207
|
-
- - ">="
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
version: '0'
|
210
28
|
description: Vendored version of exiftool
|
211
29
|
email:
|
212
30
|
- matthew+github@mceachen.org
|