exiftool_vendored 13.31.0 → 13.36.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 +88 -2
- data/bin/MANIFEST +5 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/Makefile.PL +1 -0
- data/bin/README +47 -46
- data/bin/exiftool +155 -120
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +7 -5
- data/bin/lib/Image/ExifTool/Canon.pm +46 -6
- data/bin/lib/Image/ExifTool/DJI.pm +54 -3
- data/bin/lib/Image/ExifTool/Exif.pm +9 -6
- data/bin/lib/Image/ExifTool/FlashPix.pm +4 -159
- data/bin/lib/Image/ExifTool/FujiFilm.pm +97 -32
- data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
- data/bin/lib/Image/ExifTool/Geotag.pm +5 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +14 -2
- data/bin/lib/Image/ExifTool/LNK.pm +4 -1
- data/bin/lib/Image/ExifTool/Lang/cs.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/fr.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/it.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/ja.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/nl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/pl.pm +0 -1
- data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1
- data/bin/lib/Image/ExifTool/M2TS.pm +2 -4
- data/bin/lib/Image/ExifTool/Microsoft.pm +158 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +4 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +73 -37
- data/bin/lib/Image/ExifTool/NikonCustom.pm +40 -10
- data/bin/lib/Image/ExifTool/Olympus.pm +258 -34
- data/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
- data/bin/lib/Image/ExifTool/Pentax.pm +341 -61
- data/bin/lib/Image/ExifTool/Protobuf.pm +1 -1
- data/bin/lib/Image/ExifTool/QuickTime.pm +11 -4
- data/bin/lib/Image/ExifTool/QuickTimeStream.pl +1 -1
- data/bin/lib/Image/ExifTool/README +2 -1
- data/bin/lib/Image/ExifTool/RIFF.pm +5 -3
- data/bin/lib/Image/ExifTool/Sony.pm +46 -17
- data/bin/lib/Image/ExifTool/TNEF.pm +487 -0
- data/bin/lib/Image/ExifTool/TagLookup.pm +4384 -4265
- data/bin/lib/Image/ExifTool/TagNames.pod +291 -27
- data/bin/lib/Image/ExifTool/WriteExif.pl +14 -12
- data/bin/lib/Image/ExifTool/Writer.pl +21 -16
- data/bin/lib/Image/ExifTool/XMP.pm +8 -2
- data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
- data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
- data/bin/lib/Image/ExifTool.pm +14 -4
- data/bin/lib/Image/ExifTool.pod +50 -44
- data/bin/perl-Image-ExifTool.spec +46 -45
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +3 -2
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.96';
|
92
92
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -1006,6 +1006,7 @@ $VERSION = '4.92';
|
|
1006
1006
|
0x80000491 => 'PowerShot V10', #25
|
1007
1007
|
0x80000495 => 'EOS R1', #PH
|
1008
1008
|
0x80000496 => 'R5 Mark II', #forum16406
|
1009
|
+
0x80000497 => 'PowerShot V1', #PH
|
1009
1010
|
0x80000498 => 'EOS R100', #25
|
1010
1011
|
0x80000516 => 'EOS R50 V', #42
|
1011
1012
|
0x80000520 => 'EOS D2000C', #IB
|
@@ -2151,6 +2152,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2151
2152
|
TagTable => 'Image::ExifTool::Canon::RawBurstInfo',
|
2152
2153
|
}
|
2153
2154
|
},
|
2155
|
+
# 0x4049 - related to croping (forum13491) - "8 0 0 0" = no crop, "8 1 0 1" = crop enabled
|
2154
2156
|
0x4059 => { #forum16111
|
2155
2157
|
Name => 'LevelInfo',
|
2156
2158
|
SubDirectory => {
|
@@ -2621,6 +2623,10 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2621
2623
|
# 47 - related to aspect ratio: 100=4:3,70=1:1/16:9,90=3:2,60=4:5 (PH G12)
|
2622
2624
|
# (roughly image area in percent - 4:3=100%,1:1/16:9=75%,3:2=89%,4:5=60%)
|
2623
2625
|
# 48 - 3 for CR2/CR3, 4 or 7 for JPG, -1 for edited JPG (see forum16127)
|
2626
|
+
50 => { #github340
|
2627
|
+
Name => 'FocusBracketing',
|
2628
|
+
PrintConv => { 0 => 'Disable', 1 => 'Enable' },
|
2629
|
+
},
|
2624
2630
|
51 => { #forum16036 (EOS R models)
|
2625
2631
|
Name => 'Clarity',
|
2626
2632
|
PrintConv => {
|
@@ -2628,6 +2634,10 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
|
|
2628
2634
|
0x7fff => 'n/a',
|
2629
2635
|
},
|
2630
2636
|
},
|
2637
|
+
52 => { #github336
|
2638
|
+
Name => 'HDR-PQ',
|
2639
|
+
PrintConv => { %offOn, -1 => 'n/a' },
|
2640
|
+
},
|
2631
2641
|
);
|
2632
2642
|
|
2633
2643
|
# focal length information (MakerNotes tag 0x02)
|
@@ -8931,7 +8941,7 @@ my %ciMaxFocal = (
|
|
8931
8941
|
},
|
8932
8942
|
3 => {
|
8933
8943
|
Name => 'HighlightTonePriority',
|
8934
|
-
PrintConv =>
|
8944
|
+
PrintConv => { %offOn, 2 => 'Enhanced' }, #github339 (Enhanced)
|
8935
8945
|
},
|
8936
8946
|
4 => {
|
8937
8947
|
Name => 'LongExposureNoiseReduction',
|
@@ -9163,15 +9173,37 @@ my %filterConv = (
|
|
9163
9173
|
Name => 'AFConfigTool',
|
9164
9174
|
ValueConv => '$val + 1',
|
9165
9175
|
ValueConvInv => '$val - 1',
|
9166
|
-
|
9167
|
-
|
9176
|
+
PrintHex => 1,
|
9177
|
+
PrintConv => {
|
9178
|
+
0x80000000 => 'n/a',
|
9179
|
+
OTHER => sub { 'Case ' . shift },
|
9180
|
+
},
|
9181
|
+
PrintConvInv => '$val=~/(\d+)/ ? $1 : 0x80000000',
|
9182
|
+
},
|
9183
|
+
2 => {
|
9184
|
+
Name => 'AFTrackingSensitivity',
|
9185
|
+
PrintHex => 1,
|
9186
|
+
PrintConv => {
|
9187
|
+
0x7fffffff => 'n/a',
|
9188
|
+
OTHER => sub { shift },
|
9189
|
+
},
|
9168
9190
|
},
|
9169
|
-
2 => 'AFTrackingSensitivity',
|
9170
9191
|
3 => {
|
9171
9192
|
Name => 'AFAccelDecelTracking',
|
9172
9193
|
Description => 'AF Accel/Decel Tracking',
|
9194
|
+
PrintHex => 1,
|
9195
|
+
PrintConv => {
|
9196
|
+
0x7fffffff => 'n/a',
|
9197
|
+
OTHER => sub { shift },
|
9198
|
+
},
|
9199
|
+
},
|
9200
|
+
4 => {
|
9201
|
+
Name => 'AFPointSwitching',
|
9202
|
+
PrintConv => {
|
9203
|
+
0x7fffffff => 'n/a',
|
9204
|
+
OTHER => sub { shift },
|
9205
|
+
},
|
9173
9206
|
},
|
9174
|
-
4 => 'AFPointSwitching',
|
9175
9207
|
5 => { #52
|
9176
9208
|
Name => 'AIServoFirstImage',
|
9177
9209
|
PrintConv => {
|
@@ -9323,6 +9355,14 @@ my %filterConv = (
|
|
9323
9355
|
3 => 'Vehicles',
|
9324
9356
|
},
|
9325
9357
|
},
|
9358
|
+
21 => { #github344 (R6)
|
9359
|
+
Name => 'SubjectSwitching',
|
9360
|
+
PrintConv => {
|
9361
|
+
0 => 'Initial Priority',
|
9362
|
+
1 => 'On Subject',
|
9363
|
+
2 => 'Switch Subject',
|
9364
|
+
},
|
9365
|
+
},
|
9326
9366
|
24 => { #forum16068
|
9327
9367
|
Name => 'EyeDetection',
|
9328
9368
|
PrintConv => \%offOn,
|
@@ -18,7 +18,7 @@ use Image::ExifTool::XMP;
|
|
18
18
|
use Image::ExifTool::GPS;
|
19
19
|
use Image::ExifTool::Protobuf;
|
20
20
|
|
21
|
-
$VERSION = '1.
|
21
|
+
$VERSION = '1.15';
|
22
22
|
|
23
23
|
sub ProcessDJIInfo($$$);
|
24
24
|
sub ProcessSettings($$$);
|
@@ -30,6 +30,8 @@ sub ProcessSettings($$$);
|
|
30
30
|
'dvtm_wm265e.proto' => 1, # Mavic 3
|
31
31
|
'dvtm_pm320.proto' => 1, # Matrice 30
|
32
32
|
'dvtm_Mini4_Pro.proto' => 1, # Matrice 30
|
33
|
+
'dvtm_Mini4_Pro.proto' => 1, # Matrice 30
|
34
|
+
'dvtm_dji_neo.proto' => 1, # Neo
|
33
35
|
);
|
34
36
|
|
35
37
|
my %convFloat2 = (
|
@@ -234,13 +236,14 @@ my %convFloat2 = (
|
|
234
236
|
ExifTool currently extracts timed GPS plus a few other tags from DJI devices
|
235
237
|
which use the following protocols: dvtm_AVATA2.proto (Avata 2),
|
236
238
|
dvtm_ac203.proto (Osmo Action 4), dvtm_ac204.proto (Osmo Action 5),
|
237
|
-
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30)
|
238
|
-
|
239
|
+
dvtm_wm265e.proto (Mavic 3), dvtm_pm320.proto (Matrice 30),
|
240
|
+
dvtm_Mini4_Pro.proto (Mini 4 Pro) and dvtm_dji_neo.proto (DJI Neo).
|
239
241
|
|
240
242
|
Note that with the protobuf format, numerical tags missing from the output
|
241
243
|
for a given protocol should be considered to have the default value of 0.
|
242
244
|
},
|
243
245
|
Protocol => {
|
246
|
+
Notes => "typically protobuf field 1-1-1, but ExifTool doesn't rely on this",
|
244
247
|
RawConv => q{
|
245
248
|
unless ($Image::ExifTool::DJI::knownProtocol{$val}) {
|
246
249
|
$self->Warn("Unknown protocol $val (please submit sample for testing)");
|
@@ -475,6 +478,53 @@ my %convFloat2 = (
|
|
475
478
|
Name => 'GimbalInfo',
|
476
479
|
SubDirectory => { TagTable => 'Image::ExifTool::DJI::GimbalInfo' },
|
477
480
|
},
|
481
|
+
#
|
482
|
+
# DJI Neo (very similar to AVATA2)
|
483
|
+
#
|
484
|
+
# dvtm_dji_neo_1-1-2 - some version number
|
485
|
+
# dvtm_dji_neo_1-1-3 - some version number
|
486
|
+
'dvtm_dji_neo_1-1-5' => { Name => 'SerialNumber', Notes => 'DJI Neo' }, # (NC)
|
487
|
+
'dvtm_dji_neo_1-1-10' => 'Model',
|
488
|
+
# dvtm_dji_neo_2-2-1-4 - model code?
|
489
|
+
# dvtm_dji_neo_2-2-2-1 - some firmware version?
|
490
|
+
# dvtm_dji_neo_2-2-2-2 - some version number?
|
491
|
+
'dvtm_dji_neo_2-2-3-1' => 'SerialNumber2', # (NC)
|
492
|
+
'dvtm_dji_neo_2-3' => {
|
493
|
+
Name => 'FrameInfo',
|
494
|
+
SubDirectory => { TagTable => 'Image::ExifTool::DJI::FrameInfo' },
|
495
|
+
},
|
496
|
+
# dvtm_dji_neo_3-1-1 - frame number (starting at 1)
|
497
|
+
'dvtm_dji_neo_3-1-2' => { # (also 3-2-1-6 and 3-4-1-6)
|
498
|
+
Name => 'TimeStamp',
|
499
|
+
Groups => { 2 => 'Time' },
|
500
|
+
Format => 'unsigned',
|
501
|
+
# milliseconds, but I don't know what the zero is
|
502
|
+
ValueConv => '$val / 1e6',
|
503
|
+
},
|
504
|
+
# dvtm_dji_neo_3-2-1-4 - model code?
|
505
|
+
# dvtm_dji_neo_3-2-1-5 - frame rate?
|
506
|
+
'dvtm_dji_neo_3-2-2-1' => { Name => 'ISO', Format => 'float' }, # (NC)
|
507
|
+
'dvtm_dji_neo_3-2-4-1' => {
|
508
|
+
Name => 'ShutterSpeed',
|
509
|
+
Format => 'rational',
|
510
|
+
PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
|
511
|
+
},
|
512
|
+
'dvtm_dji_neo_3-2-6-1' => { Name => 'ColorTemperature', Format => 'unsigned' }, # (NC)
|
513
|
+
'dvtm_dji_neo_3-2-10-1' => { # (NC)
|
514
|
+
Name => 'FNumber',
|
515
|
+
Format => 'rational',
|
516
|
+
PrintConv => 'Image::ExifTool::Exif::PrintFNumber($val)',
|
517
|
+
},
|
518
|
+
# dvtm_dji_neo_3-4-1-4 - model code?
|
519
|
+
'dvtm_dji_neo_3-4-3' => { # (NC)
|
520
|
+
Name => 'DroneInfo',
|
521
|
+
SubDirectory => { TagTable => 'Image::ExifTool::DJI::DroneInfo' },
|
522
|
+
},
|
523
|
+
'dvtm_dji_neo_3-4-4-1' => {
|
524
|
+
Name => 'GPSInfo',
|
525
|
+
SubDirectory => { TagTable => 'Image::ExifTool::DJI::GPSInfo' },
|
526
|
+
},
|
527
|
+
'dvtm_dji_neo_3-4-4-2' => { Name => 'AbsoluteAltitude', Format => 'int64s', ValueConv => '$val / 1000' }, # (NC)
|
478
528
|
);
|
479
529
|
|
480
530
|
%Image::ExifTool::DJI::DroneInfo = (
|
@@ -502,6 +552,7 @@ my %convFloat2 = (
|
|
502
552
|
1 => { Name => 'FrameWidth', Format => 'unsigned' },
|
503
553
|
2 => { Name => 'FrameHeight', Format => 'unsigned' },
|
504
554
|
3 => { Name => 'FrameRate', Format => 'float' },
|
555
|
+
# 4-8: seen these values respectively for DJI Neo: 1,8,4,1,4
|
505
556
|
);
|
506
557
|
|
507
558
|
%Image::ExifTool::DJI::GPSInfo = (
|
@@ -57,7 +57,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
|
|
57
57
|
use Image::ExifTool qw(:DataAccess :Utils);
|
58
58
|
use Image::ExifTool::MakerNotes;
|
59
59
|
|
60
|
-
$VERSION = '4.
|
60
|
+
$VERSION = '4.60';
|
61
61
|
|
62
62
|
sub ProcessExif($$$);
|
63
63
|
sub WriteExif($$$);
|
@@ -402,7 +402,7 @@ my %opcodeInfo = (
|
|
402
402
|
THM => 'THM - DCF thumbnail file',
|
403
403
|
},
|
404
404
|
},
|
405
|
-
0x2 => { #5
|
405
|
+
0x2 => { #5 (not in the EXIF spec)
|
406
406
|
Name => 'InteropVersion',
|
407
407
|
Description => 'Interoperability Version',
|
408
408
|
Protected => 1,
|
@@ -2029,7 +2029,7 @@ my %opcodeInfo = (
|
|
2029
2029
|
OffsetPair => -1,
|
2030
2030
|
},
|
2031
2031
|
0x8782 => 'T88Options', #20
|
2032
|
-
0x87ac => 'ImageLayer',
|
2032
|
+
0x87ac => 'ImageLayer', # Defined in the Mixed Raster Content part of RFC 2301
|
2033
2033
|
0x87af => { #30
|
2034
2034
|
Name => 'GeoTiffDirectory',
|
2035
2035
|
Format => 'undef',
|
@@ -4209,6 +4209,8 @@ my %opcodeInfo = (
|
|
4209
4209
|
},
|
4210
4210
|
},
|
4211
4211
|
# 0xc7d6 - int8u: 1 (SubIFD1 of Nikon Z6/Z7 NEF)
|
4212
|
+
0xc7d7 => { Name => 'ZIFMetadata', Binary => 1 },
|
4213
|
+
0xc7d8 => { Name => 'ZIFAnnotations', Binary => 1 },
|
4212
4214
|
0xc7e9 => { # DNG 1.5
|
4213
4215
|
Name => 'DepthFormat',
|
4214
4216
|
Writable => 'int16u',
|
@@ -6360,9 +6362,10 @@ sub ProcessExif($$$)
|
|
6360
6362
|
$et->Warn("Bad format ($format) for $dir entry $index", $inMakerNotes);
|
6361
6363
|
++$warnCount;
|
6362
6364
|
}
|
6363
|
-
# assume corrupted IFD if this is our first entry (except Sony ILCE
|
6364
|
-
|
6365
|
-
|
6365
|
+
# assume corrupted IFD if this is our first entry (except Sony ILCE which have an empty first entry)
|
6366
|
+
next if $index or $$et{Model} =~ /^ILCE/;
|
6367
|
+
# $et->Warn(sprintf('Format code 0x%x encountered -- Possibly corrupted IFD'));
|
6368
|
+
return 0;
|
6366
6369
|
}
|
6367
6370
|
}
|
6368
6371
|
my $formatStr = $formatName[$format]; # get name of this format
|
@@ -21,8 +21,9 @@ use vars qw($VERSION);
|
|
21
21
|
use Image::ExifTool qw(:DataAccess :Utils);
|
22
22
|
use Image::ExifTool::Exif;
|
23
23
|
use Image::ExifTool::ASF; # for GetGUID()
|
24
|
+
use Image::ExifTool::Microsoft; # for %codePage
|
24
25
|
|
25
|
-
$VERSION = '1.
|
26
|
+
$VERSION = '1.50';
|
26
27
|
|
27
28
|
sub ProcessFPX($$);
|
28
29
|
sub ProcessFPXR($$$);
|
@@ -123,163 +124,6 @@ my %oleFormatSize = (
|
|
123
124
|
# names for each type of directory entry
|
124
125
|
my @dirEntryType = qw(INVALID STORAGE STREAM LOCKBYTES PROPERTY ROOT);
|
125
126
|
|
126
|
-
# list of code pages used by Microsoft
|
127
|
-
# (ref http://msdn.microsoft.com/en-us/library/dd317756(VS.85).aspx)
|
128
|
-
my %codePage = (
|
129
|
-
37 => 'IBM EBCDIC US-Canada',
|
130
|
-
437 => 'DOS United States',
|
131
|
-
500 => 'IBM EBCDIC International',
|
132
|
-
708 => 'Arabic (ASMO 708)',
|
133
|
-
709 => 'Arabic (ASMO-449+, BCON V4)',
|
134
|
-
710 => 'Arabic - Transparent Arabic',
|
135
|
-
720 => 'DOS Arabic (Transparent ASMO)',
|
136
|
-
737 => 'DOS Greek (formerly 437G)',
|
137
|
-
775 => 'DOS Baltic',
|
138
|
-
850 => 'DOS Latin 1 (Western European)',
|
139
|
-
852 => 'DOS Latin 2 (Central European)',
|
140
|
-
855 => 'DOS Cyrillic (primarily Russian)',
|
141
|
-
857 => 'DOS Turkish',
|
142
|
-
858 => 'DOS Multilingual Latin 1 with Euro',
|
143
|
-
860 => 'DOS Portuguese',
|
144
|
-
861 => 'DOS Icelandic',
|
145
|
-
862 => 'DOS Hebrew',
|
146
|
-
863 => 'DOS French Canadian',
|
147
|
-
864 => 'DOS Arabic',
|
148
|
-
865 => 'DOS Nordic',
|
149
|
-
866 => 'DOS Russian (Cyrillic)',
|
150
|
-
869 => 'DOS Modern Greek',
|
151
|
-
870 => 'IBM EBCDIC Multilingual/ROECE (Latin 2)',
|
152
|
-
874 => 'Windows Thai (same as 28605, ISO 8859-15)',
|
153
|
-
875 => 'IBM EBCDIC Greek Modern',
|
154
|
-
932 => 'Windows Japanese (Shift-JIS)',
|
155
|
-
936 => 'Windows Simplified Chinese (PRC, Singapore)',
|
156
|
-
949 => 'Windows Korean (Unified Hangul Code)',
|
157
|
-
950 => 'Windows Traditional Chinese (Taiwan)',
|
158
|
-
1026 => 'IBM EBCDIC Turkish (Latin 5)',
|
159
|
-
1047 => 'IBM EBCDIC Latin 1/Open System',
|
160
|
-
1140 => 'IBM EBCDIC US-Canada with Euro',
|
161
|
-
1141 => 'IBM EBCDIC Germany with Euro',
|
162
|
-
1142 => 'IBM EBCDIC Denmark-Norway with Euro',
|
163
|
-
1143 => 'IBM EBCDIC Finland-Sweden with Euro',
|
164
|
-
1144 => 'IBM EBCDIC Italy with Euro',
|
165
|
-
1145 => 'IBM EBCDIC Latin America-Spain with Euro',
|
166
|
-
1146 => 'IBM EBCDIC United Kingdom with Euro',
|
167
|
-
1147 => 'IBM EBCDIC France with Euro',
|
168
|
-
1148 => 'IBM EBCDIC International with Euro',
|
169
|
-
1149 => 'IBM EBCDIC Icelandic with Euro',
|
170
|
-
1200 => 'Unicode UTF-16, little endian',
|
171
|
-
1201 => 'Unicode UTF-16, big endian',
|
172
|
-
1250 => 'Windows Latin 2 (Central European)',
|
173
|
-
1251 => 'Windows Cyrillic',
|
174
|
-
1252 => 'Windows Latin 1 (Western European)',
|
175
|
-
1253 => 'Windows Greek',
|
176
|
-
1254 => 'Windows Turkish',
|
177
|
-
1255 => 'Windows Hebrew',
|
178
|
-
1256 => 'Windows Arabic',
|
179
|
-
1257 => 'Windows Baltic',
|
180
|
-
1258 => 'Windows Vietnamese',
|
181
|
-
1361 => 'Korean (Johab)',
|
182
|
-
10000 => 'Mac Roman (Western European)',
|
183
|
-
10001 => 'Mac Japanese',
|
184
|
-
10002 => 'Mac Traditional Chinese',
|
185
|
-
10003 => 'Mac Korean',
|
186
|
-
10004 => 'Mac Arabic',
|
187
|
-
10005 => 'Mac Hebrew',
|
188
|
-
10006 => 'Mac Greek',
|
189
|
-
10007 => 'Mac Cyrillic',
|
190
|
-
10008 => 'Mac Simplified Chinese',
|
191
|
-
10010 => 'Mac Romanian',
|
192
|
-
10017 => 'Mac Ukrainian',
|
193
|
-
10021 => 'Mac Thai',
|
194
|
-
10029 => 'Mac Latin 2 (Central European)',
|
195
|
-
10079 => 'Mac Icelandic',
|
196
|
-
10081 => 'Mac Turkish',
|
197
|
-
10082 => 'Mac Croatian',
|
198
|
-
12000 => 'Unicode UTF-32, little endian',
|
199
|
-
12001 => 'Unicode UTF-32, big endian',
|
200
|
-
20000 => 'CNS Taiwan',
|
201
|
-
20001 => 'TCA Taiwan',
|
202
|
-
20002 => 'Eten Taiwan',
|
203
|
-
20003 => 'IBM5550 Taiwan',
|
204
|
-
20004 => 'TeleText Taiwan',
|
205
|
-
20005 => 'Wang Taiwan',
|
206
|
-
20105 => 'IA5 (IRV International Alphabet No. 5, 7-bit)',
|
207
|
-
20106 => 'IA5 German (7-bit)',
|
208
|
-
20107 => 'IA5 Swedish (7-bit)',
|
209
|
-
20108 => 'IA5 Norwegian (7-bit)',
|
210
|
-
20127 => 'US-ASCII (7-bit)',
|
211
|
-
20261 => 'T.61',
|
212
|
-
20269 => 'ISO 6937 Non-Spacing Accent',
|
213
|
-
20273 => 'IBM EBCDIC Germany',
|
214
|
-
20277 => 'IBM EBCDIC Denmark-Norway',
|
215
|
-
20278 => 'IBM EBCDIC Finland-Sweden',
|
216
|
-
20280 => 'IBM EBCDIC Italy',
|
217
|
-
20284 => 'IBM EBCDIC Latin America-Spain',
|
218
|
-
20285 => 'IBM EBCDIC United Kingdom',
|
219
|
-
20290 => 'IBM EBCDIC Japanese Katakana Extended',
|
220
|
-
20297 => 'IBM EBCDIC France',
|
221
|
-
20420 => 'IBM EBCDIC Arabic',
|
222
|
-
20423 => 'IBM EBCDIC Greek',
|
223
|
-
20424 => 'IBM EBCDIC Hebrew',
|
224
|
-
20833 => 'IBM EBCDIC Korean Extended',
|
225
|
-
20838 => 'IBM EBCDIC Thai',
|
226
|
-
20866 => 'Russian/Cyrillic (KOI8-R)',
|
227
|
-
20871 => 'IBM EBCDIC Icelandic',
|
228
|
-
20880 => 'IBM EBCDIC Cyrillic Russian',
|
229
|
-
20905 => 'IBM EBCDIC Turkish',
|
230
|
-
20924 => 'IBM EBCDIC Latin 1/Open System with Euro',
|
231
|
-
20932 => 'Japanese (JIS 0208-1990 and 0121-1990)',
|
232
|
-
20936 => 'Simplified Chinese (GB2312)',
|
233
|
-
20949 => 'Korean Wansung',
|
234
|
-
21025 => 'IBM EBCDIC Cyrillic Serbian-Bulgarian',
|
235
|
-
21027 => 'Extended Alpha Lowercase (deprecated)',
|
236
|
-
21866 => 'Ukrainian/Cyrillic (KOI8-U)',
|
237
|
-
28591 => 'ISO 8859-1 Latin 1 (Western European)',
|
238
|
-
28592 => 'ISO 8859-2 (Central European)',
|
239
|
-
28593 => 'ISO 8859-3 Latin 3',
|
240
|
-
28594 => 'ISO 8859-4 Baltic',
|
241
|
-
28595 => 'ISO 8859-5 Cyrillic',
|
242
|
-
28596 => 'ISO 8859-6 Arabic',
|
243
|
-
28597 => 'ISO 8859-7 Greek',
|
244
|
-
28598 => 'ISO 8859-8 Hebrew (Visual)',
|
245
|
-
28599 => 'ISO 8859-9 Turkish',
|
246
|
-
28603 => 'ISO 8859-13 Estonian',
|
247
|
-
28605 => 'ISO 8859-15 Latin 9',
|
248
|
-
29001 => 'Europa 3',
|
249
|
-
38598 => 'ISO 8859-8 Hebrew (Logical)',
|
250
|
-
50220 => 'ISO 2022 Japanese with no halfwidth Katakana (JIS)',
|
251
|
-
50221 => 'ISO 2022 Japanese with halfwidth Katakana (JIS-Allow 1 byte Kana)',
|
252
|
-
50222 => 'ISO 2022 Japanese JIS X 0201-1989 (JIS-Allow 1 byte Kana - SO/SI)',
|
253
|
-
50225 => 'ISO 2022 Korean',
|
254
|
-
50227 => 'ISO 2022 Simplified Chinese',
|
255
|
-
50229 => 'ISO 2022 Traditional Chinese',
|
256
|
-
50930 => 'EBCDIC Japanese (Katakana) Extended',
|
257
|
-
50931 => 'EBCDIC US-Canada and Japanese',
|
258
|
-
50933 => 'EBCDIC Korean Extended and Korean',
|
259
|
-
50935 => 'EBCDIC Simplified Chinese Extended and Simplified Chinese',
|
260
|
-
50936 => 'EBCDIC Simplified Chinese',
|
261
|
-
50937 => 'EBCDIC US-Canada and Traditional Chinese',
|
262
|
-
50939 => 'EBCDIC Japanese (Latin) Extended and Japanese',
|
263
|
-
51932 => 'EUC Japanese',
|
264
|
-
51936 => 'EUC Simplified Chinese',
|
265
|
-
51949 => 'EUC Korean',
|
266
|
-
51950 => 'EUC Traditional Chinese',
|
267
|
-
52936 => 'HZ-GB2312 Simplified Chinese',
|
268
|
-
54936 => 'Windows XP and later: GB18030 Simplified Chinese (4 byte)',
|
269
|
-
57002 => 'ISCII Devanagari',
|
270
|
-
57003 => 'ISCII Bengali',
|
271
|
-
57004 => 'ISCII Tamil',
|
272
|
-
57005 => 'ISCII Telugu',
|
273
|
-
57006 => 'ISCII Assamese',
|
274
|
-
57007 => 'ISCII Oriya',
|
275
|
-
57008 => 'ISCII Kannada',
|
276
|
-
57009 => 'ISCII Malayalam',
|
277
|
-
57010 => 'ISCII Gujarati',
|
278
|
-
57011 => 'ISCII Punjabi',
|
279
|
-
65000 => 'Unicode (UTF-7)',
|
280
|
-
65001 => 'Unicode (UTF-8)',
|
281
|
-
);
|
282
|
-
|
283
127
|
# test for file extensions which may be variants of the FPX format
|
284
128
|
# (have seen one password-protected DOCX file that is FPX-like, so assume
|
285
129
|
# that all the rest could be as well)
|
@@ -550,7 +394,8 @@ my %fpxFileType = (
|
|
550
394
|
0x01 => {
|
551
395
|
Name => 'CodePage',
|
552
396
|
Groups => { 2 => 'Other' },
|
553
|
-
|
397
|
+
SeparateTable => 'Microsoft CodePage',
|
398
|
+
PrintConv => \%Image::ExifTool::Microsoft::codePage,
|
554
399
|
},
|
555
400
|
0x02 => 'Title',
|
556
401
|
0x03 => 'Subject',
|