exiftool-vendored.exe 12.33.0 → 12.40.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.
- package/LICENSE +254 -247
- package/bin/exiftool_files/Changes +116 -0
- package/bin/exiftool_files/README +45 -45
- package/bin/exiftool_files/config_files/acdsee.config +6 -6
- package/bin/exiftool_files/config_files/photoshop_paths.config +30 -7
- package/bin/exiftool_files/config_files/picasa_faces.config +1 -1
- package/bin/exiftool_files/config_files/pix4d.config +2 -2
- package/bin/exiftool_files/config_files/tiff_version.config +2 -2
- package/bin/exiftool_files/exiftool.pl +112 -82
- package/bin/exiftool_files/lib/File/RandomAccess.pm +1 -1
- package/bin/exiftool_files/lib/File/RandomAccess.pod +2 -2
- package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +15 -4
- package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +225 -13
- package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +13 -3
- package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +3 -3
- package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +64 -20
- package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +48 -11
- package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +15 -11
- package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -3
- package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +97 -5
- package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +109 -12
- package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +9 -5
- package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +1918 -72
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +523 -6
- package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +150 -87
- package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +7 -7
- package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +5 -3
- package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +6 -4
- package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +29 -8
- package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +3 -2
- package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +25 -7
- package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +40 -4
- package/bin/exiftool_files/lib/Image/ExifTool/README +4 -0
- package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +6 -2
- package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +3 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +34 -12
- package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +11 -6
- package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6581 -5893
- package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +1641 -59
- package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +30 -10
- package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +19 -4
- package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +13 -12
- package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +56 -10
- package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +169 -54
- package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +6 -4
- package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +22 -8
- package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +10 -2
- package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
- package/bin/exiftool_files/lib/Image/ExifTool.pm +93 -13
- package/bin/exiftool_files/lib/Image/ExifTool.pod +80 -70
- package/package.json +3 -3
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
# 4) http://www.color.org/privatetag2007-01.pdf
|
|
12
12
|
# 5) http://www.color.org/icc_specs2.xalter (approved revisions, 2010-07-16)
|
|
13
13
|
# 6) Eef Vreeland private communication
|
|
14
|
+
# 7) https://color.org/specification/ICC.2-2019.pdf
|
|
14
15
|
#
|
|
15
16
|
# Notes: The ICC profile information is different: the format of each
|
|
16
17
|
# tag is embedded in the information instead of in the directory
|
|
@@ -24,7 +25,7 @@ use strict;
|
|
|
24
25
|
use vars qw($VERSION);
|
|
25
26
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
26
27
|
|
|
27
|
-
$VERSION = '1.
|
|
28
|
+
$VERSION = '1.38';
|
|
28
29
|
|
|
29
30
|
sub ProcessICC($$);
|
|
30
31
|
sub ProcessICC_Profile($$$);
|
|
@@ -52,6 +53,11 @@ my %profileClass = (
|
|
|
52
53
|
abst => 'Abstract Profile',
|
|
53
54
|
nmcl => 'NamedColor Profile',
|
|
54
55
|
nkpf => 'Nikon Input Device Profile (NON-STANDARD!)', # (written by Nikon utilities)
|
|
56
|
+
# additions in v5 (ref 7)
|
|
57
|
+
cenc => 'ColorEncodingSpace Profile',
|
|
58
|
+
'mid '=> 'MultiplexIdentification Profile',
|
|
59
|
+
mlnk => 'MultiplexLink Profile',
|
|
60
|
+
mvis => 'MultiplexVisualization Profile',
|
|
55
61
|
);
|
|
56
62
|
my %manuSig = ( #6
|
|
57
63
|
'NONE' => 'none',
|
|
@@ -539,6 +545,90 @@ my %manuSig = ( #6
|
|
|
539
545
|
Binary => 1, # (NC)
|
|
540
546
|
},
|
|
541
547
|
|
|
548
|
+
# new tags in v5 (ref 7)
|
|
549
|
+
A2B3 => 'AToB3',
|
|
550
|
+
A2M0 => 'AToM0',
|
|
551
|
+
B2A3 => 'BToA3',
|
|
552
|
+
bcp0 => 'BRDFColorimetricParam0',
|
|
553
|
+
bcp1 => 'BRDFColorimetricParam1',
|
|
554
|
+
bcp2 => 'BRDFColorimetricParam2',
|
|
555
|
+
bcp3 => 'BRDFColorimetricParam3',
|
|
556
|
+
bsp0 => 'BRDFSpectralParam0',
|
|
557
|
+
bsp1 => 'BRDFSpectralParam1',
|
|
558
|
+
bsp2 => 'BRDFSpectralParam2',
|
|
559
|
+
bsp3 => 'BRDFSpectralParam3',
|
|
560
|
+
bAB0 => 'BRDFAToB0',
|
|
561
|
+
bAB1 => 'BRDFAToB1',
|
|
562
|
+
bAB2 => 'BRDFAToB2',
|
|
563
|
+
bAB3 => 'BRDFAToB3',
|
|
564
|
+
bBA0 => 'BRDFBToA0',
|
|
565
|
+
bBA1 => 'BRDFBToA1',
|
|
566
|
+
bBA2 => 'BRDFBToA2',
|
|
567
|
+
bBA3 => 'BRDFBToA3',
|
|
568
|
+
bBD0 => 'BRDFBToD0',
|
|
569
|
+
bBD1 => 'BRDFBToD1',
|
|
570
|
+
bBD2 => 'BRDFBToD2',
|
|
571
|
+
bBD3 => 'BRDFBToD3',
|
|
572
|
+
bDB0 => 'BRDFDToB0',
|
|
573
|
+
bDB1 => 'BRDFDToB1',
|
|
574
|
+
bDB2 => 'BRDFDToB2',
|
|
575
|
+
bDB3 => 'BRDFDToB3',
|
|
576
|
+
bMB0 => 'BRDFMToB0',
|
|
577
|
+
bMB1 => 'BRDFMToB1',
|
|
578
|
+
bMB2 => 'BRDFMToB2',
|
|
579
|
+
bMB3 => 'BRDFMToB3',
|
|
580
|
+
bMS0 => 'BRDFMToS0',
|
|
581
|
+
bMS1 => 'BRDFMToS1',
|
|
582
|
+
bMS2 => 'BRDFMToS2',
|
|
583
|
+
bMS3 => 'BRDFMToS3',
|
|
584
|
+
dAB0 => 'DirectionalAToB0',
|
|
585
|
+
dAB1 => 'DirectionalAToB1',
|
|
586
|
+
dAB2 => 'DirectionalAToB2',
|
|
587
|
+
dAB3 => 'DirectionalAToB3',
|
|
588
|
+
dBA0 => 'DirectionalBToA0',
|
|
589
|
+
dBA1 => 'DirectionalBToA1',
|
|
590
|
+
dBA2 => 'DirectionalBToA2',
|
|
591
|
+
dBA3 => 'DirectionalBToA3',
|
|
592
|
+
dBD0 => 'DirectionalBToD0',
|
|
593
|
+
dBD1 => 'DirectionalBToD1',
|
|
594
|
+
dBD2 => 'DirectionalBToD2',
|
|
595
|
+
dBD3 => 'DirectionalBToD3',
|
|
596
|
+
dDB0 => 'DirectionalDToB0',
|
|
597
|
+
dDB1 => 'DirectionalDToB1',
|
|
598
|
+
dDB2 => 'DirectionalDToB2',
|
|
599
|
+
dDB3 => 'DirectionalDToB3',
|
|
600
|
+
gdb0 => 'GamutBoundaryDescription0',
|
|
601
|
+
gdb1 => 'GamutBoundaryDescription1',
|
|
602
|
+
gdb2 => 'GamutBoundaryDescription2',
|
|
603
|
+
gdb3 => 'GamutBoundaryDescription3',
|
|
604
|
+
'mdv '=> 'MultiplexDefaultValues',
|
|
605
|
+
mcta => 'MultiplexTypeArray',
|
|
606
|
+
minf => 'MeasurementInfo',
|
|
607
|
+
miin => 'MeasurementInputInfo',
|
|
608
|
+
M2A0 => 'MToA0',
|
|
609
|
+
M2B0 => 'MToB0',
|
|
610
|
+
M2B1 => 'MToB1',
|
|
611
|
+
M2B2 => 'MToB2',
|
|
612
|
+
M2B3 => 'MToB3',
|
|
613
|
+
M2S0 => 'MToS0',
|
|
614
|
+
M2S1 => 'MToS1',
|
|
615
|
+
M2S2 => 'MToS2',
|
|
616
|
+
M2S3 => 'MToS3',
|
|
617
|
+
cept => 'ColorEncodingParams',
|
|
618
|
+
csnm => 'ColorSpaceName',
|
|
619
|
+
cloo => 'ColorantOrderOut',
|
|
620
|
+
clio => 'ColorantInfoOut',
|
|
621
|
+
c2sp => 'CustomToStandardPcc',
|
|
622
|
+
'CxF '=> 'CXF',
|
|
623
|
+
nmcl => 'NamedColor',
|
|
624
|
+
psin => 'ProfileSequenceInfo',
|
|
625
|
+
rfnm => 'ReferenceName',
|
|
626
|
+
svcn => 'SpectralViewingConditions',
|
|
627
|
+
swpt => 'SpectralWhitePoint',
|
|
628
|
+
s2cp => 'StandardToCustomPcc',
|
|
629
|
+
smap => 'SurfaceMap',
|
|
630
|
+
# smwp ? (seen in some v5 samples)
|
|
631
|
+
|
|
542
632
|
# the following entry represents the ICC profile header, and doesn't
|
|
543
633
|
# exist as a tag in the directory. It is only in this table to provide
|
|
544
634
|
# a link so ExifTool can locate the header tags
|
|
@@ -850,7 +940,7 @@ sub FormatICCTag($$$)
|
|
|
850
940
|
# dataType
|
|
851
941
|
if ($type eq 'data' and $size >= 12) {
|
|
852
942
|
my $form = Get32u($dataPt, $offset+8);
|
|
853
|
-
# format 0 is
|
|
943
|
+
# format 0 is UTF-8 data
|
|
854
944
|
$form == 0 and return substr($$dataPt, $offset+12, $size-12);
|
|
855
945
|
# binary data and other data types treat as binary (ie. don't format)
|
|
856
946
|
}
|
|
@@ -1022,7 +1112,7 @@ sub ValidateICC($)
|
|
|
1022
1112
|
$profileClass{substr($$valPtr, 12, 4)} or $err = 'profile class';
|
|
1023
1113
|
my $col = substr($$valPtr, 16, 4); # ColorSpaceData
|
|
1024
1114
|
my $con = substr($$valPtr, 20, 4); # ConnectionSpace
|
|
1025
|
-
my $match = '(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR)';
|
|
1115
|
+
my $match = '(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR|nc..|\0{4})';
|
|
1026
1116
|
$col =~ /$match/ or $err = 'color space';
|
|
1027
1117
|
$con =~ /$match/ or $err = 'connection space';
|
|
1028
1118
|
return $err ? "Invalid ICC profile (bad $err)" : undef;
|
|
@@ -1134,7 +1224,7 @@ sub ProcessICC_Profile($$$)
|
|
|
1134
1224
|
my $tagInfo = $et->GetTagInfo($tagTablePtr, $tagID);
|
|
1135
1225
|
# unknown tags aren't generated automatically by GetTagInfo()
|
|
1136
1226
|
# if the tagID's aren't numeric, so we must do this manually:
|
|
1137
|
-
if (not $tagInfo and $$et{OPTIONS}{Unknown}) {
|
|
1227
|
+
if (not $tagInfo and ($$et{OPTIONS}{Unknown} or $verbose)) {
|
|
1138
1228
|
$tagInfo = { Unknown => 1 };
|
|
1139
1229
|
AddTagToTable($tagTablePtr, $tagID, $tagInfo);
|
|
1140
1230
|
}
|
|
@@ -1264,7 +1354,7 @@ data created on one device into another device's native color space.
|
|
|
1264
1354
|
|
|
1265
1355
|
=head1 AUTHOR
|
|
1266
1356
|
|
|
1267
|
-
Copyright 2003-
|
|
1357
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1268
1358
|
|
|
1269
1359
|
This library is free software; you can redistribute it and/or modify it
|
|
1270
1360
|
under the same terms as Perl itself.
|
|
@@ -1277,6 +1367,8 @@ under the same terms as Perl itself.
|
|
|
1277
1367
|
|
|
1278
1368
|
=item L<http://developer.apple.com/documentation/GraphicsImaging/Reference/ColorSync_Manager/ColorSync_Manager.pdf>
|
|
1279
1369
|
|
|
1370
|
+
=item L<https://color.org/specification/ICC.2-2019.pdf>
|
|
1371
|
+
|
|
1280
1372
|
=back
|
|
1281
1373
|
|
|
1282
1374
|
=head1 SEE ALSO
|
|
@@ -1652,7 +1652,7 @@ other types of audio files.
|
|
|
1652
1652
|
|
|
1653
1653
|
=head1 AUTHOR
|
|
1654
1654
|
|
|
1655
|
-
Copyright 2003-
|
|
1655
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1656
1656
|
|
|
1657
1657
|
This library is free software; you can redistribute it and/or modify it
|
|
1658
1658
|
under the same terms as Perl itself.
|
|
@@ -1280,7 +1280,7 @@ image files.
|
|
|
1280
1280
|
|
|
1281
1281
|
=head1 AUTHOR
|
|
1282
1282
|
|
|
1283
|
-
Copyright 2003-
|
|
1283
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1284
1284
|
|
|
1285
1285
|
This library is free software; you can redistribute it and/or modify it
|
|
1286
1286
|
under the same terms as Perl itself.
|
|
@@ -184,7 +184,7 @@ information from ISO 9660 disk images.
|
|
|
184
184
|
|
|
185
185
|
=head1 AUTHOR
|
|
186
186
|
|
|
187
|
-
Copyright 2003-
|
|
187
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
188
188
|
|
|
189
189
|
This library is free software; you can redistribute it and/or modify it
|
|
190
190
|
under the same terms as Perl itself.
|
|
@@ -191,7 +191,7 @@ information (including artwork images) from iTunes Cover Flow files.
|
|
|
191
191
|
|
|
192
192
|
=head1 AUTHOR
|
|
193
193
|
|
|
194
|
-
Copyright 2003-
|
|
194
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
195
195
|
|
|
196
196
|
This library is free software; you can redistribute it and/or modify it
|
|
197
197
|
under the same terms as Perl itself.
|
|
@@ -348,7 +348,7 @@ stored as hash lookups of tag name/value for each SourceFile.
|
|
|
348
348
|
|
|
349
349
|
=head1 AUTHOR
|
|
350
350
|
|
|
351
|
-
Copyright 2003-
|
|
351
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
352
352
|
|
|
353
353
|
This library is free software; you can redistribute it and/or modify it
|
|
354
354
|
under the same terms as Perl itself.
|
|
@@ -258,7 +258,7 @@ them and the LargeFileSupport option is enabled.
|
|
|
258
258
|
|
|
259
259
|
=head1 AUTHOR
|
|
260
260
|
|
|
261
|
-
Copyright 2003-
|
|
261
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
262
262
|
|
|
263
263
|
This library is free software; you can redistribute it and/or modify it
|
|
264
264
|
under the same terms as Perl itself.
|
|
@@ -11,7 +11,7 @@ use strict;
|
|
|
11
11
|
use vars qw($VERSION);
|
|
12
12
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
13
13
|
|
|
14
|
-
$VERSION = '1.
|
|
14
|
+
$VERSION = '1.33';
|
|
15
15
|
|
|
16
16
|
sub ProcessOcad($$$);
|
|
17
17
|
sub ProcessJPEG_HDR($$$);
|
|
@@ -284,6 +284,10 @@ sub ProcessJPEG_HDR($$$);
|
|
|
284
284
|
}, {
|
|
285
285
|
Name => 'Insta360',
|
|
286
286
|
Condition => '$$valPt =~ /8db42d694ccc418790edff439fe026bf$/',
|
|
287
|
+
}, {
|
|
288
|
+
Name => 'NikonApp',
|
|
289
|
+
Condition => '$$valPt =~ m(\0{6}/NIKON APP$)',
|
|
290
|
+
Notes => 'contains editing information in XMP format',
|
|
287
291
|
}, {
|
|
288
292
|
Name => 'PreviewImage',
|
|
289
293
|
Condition => '$$valPt =~ /^\xff\xd8\xff/',
|
|
@@ -714,7 +718,7 @@ segments are included in the Image::ExifTool module itself.
|
|
|
714
718
|
|
|
715
719
|
=head1 AUTHOR
|
|
716
720
|
|
|
717
|
-
Copyright 2003-
|
|
721
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
718
722
|
|
|
719
723
|
This library is free software; you can redistribute it and/or modify it
|
|
720
724
|
under the same terms as Perl itself.
|
|
@@ -2590,7 +2590,7 @@ estimated JPEG quality if requested.
|
|
|
2590
2590
|
|
|
2591
2591
|
=head1 AUTHOR
|
|
2592
2592
|
|
|
2593
|
-
Copyright 2003-
|
|
2593
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2594
2594
|
|
|
2595
2595
|
This library is free software; you can redistribute it and/or modify it
|
|
2596
2596
|
under the same terms as Perl itself.
|
|
@@ -176,7 +176,7 @@ information from JSON files.
|
|
|
176
176
|
|
|
177
177
|
=head1 AUTHOR
|
|
178
178
|
|
|
179
|
-
Copyright 2003-
|
|
179
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
180
180
|
|
|
181
181
|
This library is free software; you can redistribute it and/or modify it
|
|
182
182
|
under the same terms as Perl itself.
|
|
@@ -117,7 +117,7 @@ notes.
|
|
|
117
117
|
|
|
118
118
|
=head1 AUTHOR
|
|
119
119
|
|
|
120
|
-
Copyright 2003-
|
|
120
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
121
121
|
|
|
122
122
|
This library is free software; you can redistribute it and/or modify it
|
|
123
123
|
under the same terms as Perl itself.
|
|
@@ -16,7 +16,7 @@ use strict;
|
|
|
16
16
|
use vars qw($VERSION);
|
|
17
17
|
use Image::ExifTool qw(:DataAccess :Utils);
|
|
18
18
|
|
|
19
|
-
$VERSION = '1.
|
|
19
|
+
$VERSION = '1.32';
|
|
20
20
|
|
|
21
21
|
sub ProcessJpeg2000Box($$$);
|
|
22
22
|
sub ProcessJUMD($$$);
|
|
@@ -42,8 +42,9 @@ my %jp2Map = (
|
|
|
42
42
|
'UUID-IPTC' => 'JP2',
|
|
43
43
|
'UUID-EXIF' => 'JP2',
|
|
44
44
|
'UUID-XMP' => 'JP2',
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
jp2h => 'JP2',
|
|
46
|
+
colr => 'jp2h',
|
|
47
|
+
ICC_Profile => 'colr',
|
|
47
48
|
IFD1 => 'IFD0',
|
|
48
49
|
EXIF => 'IFD0', # to write EXIF as a block
|
|
49
50
|
ExifIFD => 'IFD0',
|
|
@@ -560,11 +561,34 @@ my %j2cMarker = (
|
|
|
560
561
|
|
|
561
562
|
%Image::ExifTool::Jpeg2000::ColorSpec = (
|
|
562
563
|
PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
|
564
|
+
WRITE_PROC => \&Image::ExifTool::WriteBinaryData, # (we don't actually call this)
|
|
563
565
|
GROUPS => { 2 => 'Image' },
|
|
564
566
|
FORMAT => 'int8s',
|
|
567
|
+
WRITABLE => 1,
|
|
568
|
+
# (Note: 'colr' is not a real group, but is used as a hack to write the
|
|
569
|
+
# necessary colr box. This hack necessitated another hack in TagInfoXML.pm
|
|
570
|
+
# to avoid reporting this fake group in the XML output)
|
|
571
|
+
WRITE_GROUP => 'colr',
|
|
572
|
+
DATAMEMBER => [ 0 ],
|
|
573
|
+
IS_SUBDIR => [ 3 ],
|
|
574
|
+
NOTES => q{
|
|
575
|
+
The table below contains tags in the color specification (colr) box. This
|
|
576
|
+
box may be rewritten by writing either ICC_Profile, ColorSpace or
|
|
577
|
+
ColorSpecData. When writing, any existing colr boxes are replaced with the
|
|
578
|
+
newly created colr box.
|
|
579
|
+
|
|
580
|
+
B<NOTE>: Care must be taken when writing this color specification because
|
|
581
|
+
writing a specification that is incompatible with the image data may make
|
|
582
|
+
the image undisplayable.
|
|
583
|
+
},
|
|
565
584
|
0 => {
|
|
566
585
|
Name => 'ColorSpecMethod',
|
|
567
586
|
RawConv => '$$self{ColorSpecMethod} = $val',
|
|
587
|
+
Protected => 1,
|
|
588
|
+
Notes => q{
|
|
589
|
+
default for writing is 2 when writing ICC_Profile, 1 when writing
|
|
590
|
+
ColorSpace, or 4 when writing ColorSpecData
|
|
591
|
+
},
|
|
568
592
|
PrintConv => {
|
|
569
593
|
1 => 'Enumerated',
|
|
570
594
|
2 => 'Restricted ICC',
|
|
@@ -572,9 +596,15 @@ my %j2cMarker = (
|
|
|
572
596
|
4 => 'Vendor Color',
|
|
573
597
|
},
|
|
574
598
|
},
|
|
575
|
-
1 =>
|
|
599
|
+
1 => {
|
|
600
|
+
Name => 'ColorSpecPrecedence',
|
|
601
|
+
Notes => 'default for writing is 0',
|
|
602
|
+
Protected => 1,
|
|
603
|
+
},
|
|
576
604
|
2 => {
|
|
577
605
|
Name => 'ColorSpecApproximation',
|
|
606
|
+
Notes => 'default for writing is 0',
|
|
607
|
+
Protected => 1,
|
|
578
608
|
PrintConv => {
|
|
579
609
|
0 => 'Not Specified',
|
|
580
610
|
1 => 'Accurate',
|
|
@@ -599,6 +629,7 @@ my %j2cMarker = (
|
|
|
599
629
|
Name => 'ColorSpace',
|
|
600
630
|
Condition => '$$self{ColorSpecMethod} == 1',
|
|
601
631
|
Format => 'int32u',
|
|
632
|
+
Protected => 1,
|
|
602
633
|
PrintConv => { # ref 15444-2 2002-05-15
|
|
603
634
|
0 => 'Bi-level',
|
|
604
635
|
1 => 'YCbCr(1)',
|
|
@@ -628,6 +659,8 @@ my %j2cMarker = (
|
|
|
628
659
|
{
|
|
629
660
|
Name => 'ColorSpecData',
|
|
630
661
|
Format => 'undef[$size-3]',
|
|
662
|
+
Writable => 'undef',
|
|
663
|
+
Protected => 1,
|
|
631
664
|
Binary => 1,
|
|
632
665
|
},
|
|
633
666
|
],
|
|
@@ -817,6 +850,48 @@ sub CreateNewBoxes($$)
|
|
|
817
850
|
return 1;
|
|
818
851
|
}
|
|
819
852
|
|
|
853
|
+
#------------------------------------------------------------------------------
|
|
854
|
+
# Create Color Specification Box
|
|
855
|
+
# Inputs: 0) ExifTool object ref, 1) Output file or scalar ref
|
|
856
|
+
# Returns: 1 on success
|
|
857
|
+
sub CreateColorSpec($$)
|
|
858
|
+
{
|
|
859
|
+
my ($et, $outfile) = @_;
|
|
860
|
+
my $meth = $et->GetNewValue('Jpeg2000:ColorSpecMethod');
|
|
861
|
+
my $prec = $et->GetNewValue('Jpeg2000:ColorSpecPrecedence') || 0;
|
|
862
|
+
my $approx = $et->GetNewValue('Jpeg2000:ColorSpecApproximation') || 0;
|
|
863
|
+
my $icc = $et->GetNewValue('ICC_Profile');
|
|
864
|
+
my $space = $et->GetNewValue('Jpeg2000:ColorSpace');
|
|
865
|
+
my $cdata = $et->GetNewValue('Jpeg2000:ColorSpecData');
|
|
866
|
+
unless ($meth) {
|
|
867
|
+
if ($icc) {
|
|
868
|
+
$meth = 2;
|
|
869
|
+
} elsif (defined $space) {
|
|
870
|
+
$meth = 1;
|
|
871
|
+
} elsif (defined $cdata) {
|
|
872
|
+
$meth = 4;
|
|
873
|
+
} else {
|
|
874
|
+
$et->Warn('Color space not defined'), return 0;
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
if ($meth eq '1') {
|
|
878
|
+
defined $space or $et->Warn('Must specify ColorSpace'), return 0;
|
|
879
|
+
$cdata = pack('N', $space);
|
|
880
|
+
} elsif ($meth eq '2' or $meth eq '3') {
|
|
881
|
+
defined $icc or $et->Warn('Must specify ICC_Profile'), return 0;
|
|
882
|
+
$cdata = $icc;
|
|
883
|
+
} elsif ($meth eq '4') {
|
|
884
|
+
defined $cdata or $et->Warn('Must specify ColorSpecData'), return 0;
|
|
885
|
+
} else {
|
|
886
|
+
$et->Warn('Unknown ColorSpecMethod'), return 0;
|
|
887
|
+
}
|
|
888
|
+
my $boxhdr = pack('N', length($cdata) + 11) . 'colr';
|
|
889
|
+
Write($outfile, $boxhdr, pack('CCC',$meth,$prec,$approx), $cdata) or return 0;
|
|
890
|
+
++$$et{CHANGED};
|
|
891
|
+
$et->VPrint(1, " + Jpeg2000:ColorSpec\n");
|
|
892
|
+
return 1;
|
|
893
|
+
}
|
|
894
|
+
|
|
820
895
|
#------------------------------------------------------------------------------
|
|
821
896
|
# Process JPEG 2000 box
|
|
822
897
|
# Inputs: 0) ExifTool object reference, 1) dirInfo reference, 2) Pointer to tag table
|
|
@@ -834,7 +909,7 @@ sub ProcessJpeg2000Box($$$)
|
|
|
834
909
|
my $raf = $$dirInfo{RAF};
|
|
835
910
|
my $outfile = $$dirInfo{OutFile};
|
|
836
911
|
my $dirEnd = $dirStart + $dirLen;
|
|
837
|
-
my ($err, $outBuff, $verbose);
|
|
912
|
+
my ($err, $outBuff, $verbose, $doColour);
|
|
838
913
|
|
|
839
914
|
if ($outfile) {
|
|
840
915
|
unless ($raf) {
|
|
@@ -842,13 +917,19 @@ sub ProcessJpeg2000Box($$$)
|
|
|
842
917
|
$outBuff = '';
|
|
843
918
|
$outfile = \$outBuff;
|
|
844
919
|
}
|
|
920
|
+
# determine if we will be writing colr box
|
|
921
|
+
if ($$dirInfo{DirName} and $$dirInfo{DirName} eq 'JP2Header') {
|
|
922
|
+
$doColour = 2 if defined $et->GetNewValue('ColorSpecMethod') or $et->GetNewValue('ICC_Profile') or
|
|
923
|
+
defined $et->GetNewValue('ColorSpecPrecedence') or defined $et->GetNewValue('ColorSpace') or
|
|
924
|
+
defined $et->GetNewValue('ColorSpecApproximation') or defined $et->GetNewValue('ColorSpecData');
|
|
925
|
+
}
|
|
845
926
|
} else {
|
|
846
927
|
# (must not set verbose flag when writing!)
|
|
847
928
|
$verbose = $$et{OPTIONS}{Verbose};
|
|
848
929
|
$et->VerboseDir($$dirInfo{DirName}) if $verbose;
|
|
849
930
|
}
|
|
850
931
|
# loop through all contained boxes
|
|
851
|
-
my ($pos, $boxLen);
|
|
932
|
+
my ($pos, $boxLen, $lastBox);
|
|
852
933
|
for ($pos=$dirStart; ; $pos+=$boxLen) {
|
|
853
934
|
my ($boxID, $buff, $valuePtr);
|
|
854
935
|
my $hdrLen = 8; # the box header length
|
|
@@ -857,9 +938,7 @@ sub ProcessJpeg2000Box($$$)
|
|
|
857
938
|
my $n = $raf->Read($buff,$hdrLen);
|
|
858
939
|
unless ($n == $hdrLen) {
|
|
859
940
|
$n and $err = '', last;
|
|
860
|
-
|
|
861
|
-
CreateNewBoxes($et, $outfile) or $err = 1;
|
|
862
|
-
}
|
|
941
|
+
CreateNewBoxes($et, $outfile) or $err = 1 if $outfile;
|
|
863
942
|
last;
|
|
864
943
|
}
|
|
865
944
|
$dataPt = \$buff;
|
|
@@ -871,6 +950,17 @@ sub ProcessJpeg2000Box($$$)
|
|
|
871
950
|
}
|
|
872
951
|
$boxLen = unpack("x$pos N",$$dataPt); # (length includes header and data)
|
|
873
952
|
$boxID = substr($$dataPt, $pos+4, 4);
|
|
953
|
+
# remove old colr boxes if necessary
|
|
954
|
+
if ($doColour and $boxID eq 'colr') {
|
|
955
|
+
if ($doColour == 1) { # did we successfully write the new colr box?
|
|
956
|
+
$et->VPrint(1," - Jpeg2000:ColorSpec\n");
|
|
957
|
+
++$$et{CHANGED};
|
|
958
|
+
next;
|
|
959
|
+
}
|
|
960
|
+
$et->Warn('Out-of-order colr box encountered');
|
|
961
|
+
undef $doColour;
|
|
962
|
+
}
|
|
963
|
+
$lastBox = $boxID;
|
|
874
964
|
$pos += $hdrLen; # move to end of box header
|
|
875
965
|
if ($boxLen == 1) {
|
|
876
966
|
# box header contains an additional 8-byte integer for length
|
|
@@ -1009,8 +1099,10 @@ sub ProcessJpeg2000Box($$$)
|
|
|
1009
1099
|
# remove this directory from our create list
|
|
1010
1100
|
delete $$et{AddJp2Dirs}{$$tagInfo{Name}};
|
|
1011
1101
|
my $newdir;
|
|
1012
|
-
# only edit writable UUID and
|
|
1013
|
-
if ($uuid or $boxID eq 'Exif' or ($boxID eq 'xml ' and $$et{IsJXL})
|
|
1102
|
+
# only edit writable UUID, Exif and jp2h boxes
|
|
1103
|
+
if ($uuid or $boxID eq 'Exif' or ($boxID eq 'xml ' and $$et{IsJXL}) or
|
|
1104
|
+
($boxID eq 'jp2h' and $$et{EDIT_DIRS}{jp2h}))
|
|
1105
|
+
{
|
|
1014
1106
|
$newdir = $et->WriteDirectory(\%subdirInfo, $subTable, $$subdir{WriteProc});
|
|
1015
1107
|
next if defined $newdir and not length $newdir; # next if deleting the box
|
|
1016
1108
|
} elsif (defined $uuid) {
|
|
@@ -1022,6 +1114,11 @@ sub ProcessJpeg2000Box($$$)
|
|
|
1022
1114
|
my $boxhdr = pack('N', length($newdir) + 8 + $prefixLen) . $boxID;
|
|
1023
1115
|
$boxhdr .= substr($$dataPt, $valuePtr, $prefixLen) if $prefixLen;
|
|
1024
1116
|
Write($outfile, $boxhdr, $newdir) or $err = 1;
|
|
1117
|
+
# write new colr box immediately after ihdr
|
|
1118
|
+
if ($doColour and $boxID eq 'ihdr') {
|
|
1119
|
+
# (shouldn't be multiple ihdr boxes, but just in case, write only 1)
|
|
1120
|
+
$doColour = $doColour==2 ? CreateColorSpec($et, $outfile) : 0;
|
|
1121
|
+
}
|
|
1025
1122
|
} else {
|
|
1026
1123
|
# extract as a block if specified
|
|
1027
1124
|
$subdirInfo{BlockInfo} = $tagInfo if $$tagInfo{BlockExtract};
|
|
@@ -1258,7 +1355,7 @@ files.
|
|
|
1258
1355
|
|
|
1259
1356
|
=head1 AUTHOR
|
|
1260
1357
|
|
|
1261
|
-
Copyright 2003-
|
|
1358
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1262
1359
|
|
|
1263
1360
|
This library is free software; you can redistribute it and/or modify it
|
|
1264
1361
|
under the same terms as Perl itself.
|
|
@@ -3252,7 +3252,7 @@ interpret Kodak maker notes EXIF meta information.
|
|
|
3252
3252
|
|
|
3253
3253
|
=head1 AUTHOR
|
|
3254
3254
|
|
|
3255
|
-
Copyright 2003-
|
|
3255
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
3256
3256
|
|
|
3257
3257
|
This library is free software; you can redistribute it and/or modify it
|
|
3258
3258
|
under the same terms as Perl itself.
|
|
@@ -152,7 +152,7 @@ meta information from Kyocera Contax N Digital RAW images.
|
|
|
152
152
|
|
|
153
153
|
=head1 AUTHOR
|
|
154
154
|
|
|
155
|
-
Copyright 2003-
|
|
155
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
156
156
|
|
|
157
157
|
This library is free software; you can redistribute it and/or modify it
|
|
158
158
|
under the same terms as Perl itself.
|
|
@@ -139,7 +139,7 @@ metadata from Leica Image File (LIF) images.
|
|
|
139
139
|
|
|
140
140
|
=head1 AUTHOR
|
|
141
141
|
|
|
142
|
-
Copyright 2003-
|
|
142
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
143
143
|
|
|
144
144
|
This library is free software; you can redistribute it and/or modify it
|
|
145
145
|
under the same terms as Perl itself.
|
|
@@ -699,7 +699,7 @@ information MS Shell Link (Windows shortcut) files.
|
|
|
699
699
|
|
|
700
700
|
=head1 AUTHOR
|
|
701
701
|
|
|
702
|
-
Copyright 2003-
|
|
702
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
703
703
|
|
|
704
704
|
This library is free software; you can redistribute it and/or modify it
|
|
705
705
|
under the same terms as Perl itself.
|
|
@@ -1570,7 +1570,7 @@ and values.
|
|
|
1570
1570
|
|
|
1571
1571
|
=head1 AUTHOR
|
|
1572
1572
|
|
|
1573
|
-
Copyright 2003-
|
|
1573
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1574
1574
|
|
|
1575
1575
|
This library is free software; you can redistribute it and/or modify it
|
|
1576
1576
|
under the same terms as Perl itself.
|
|
@@ -8702,7 +8702,7 @@ and values.
|
|
|
8702
8702
|
|
|
8703
8703
|
=head1 AUTHOR
|
|
8704
8704
|
|
|
8705
|
-
Copyright 2003-
|
|
8705
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
8706
8706
|
|
|
8707
8707
|
This library is free software; you can redistribute it and/or modify it
|
|
8708
8708
|
under the same terms as Perl itself.
|
|
@@ -989,7 +989,7 @@ and values.
|
|
|
989
989
|
|
|
990
990
|
=head1 AUTHOR
|
|
991
991
|
|
|
992
|
-
Copyright 2003-
|
|
992
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
993
993
|
|
|
994
994
|
This library is free software; you can redistribute it and/or modify it
|
|
995
995
|
under the same terms as Perl itself.
|
|
@@ -1032,7 +1032,7 @@ and values.
|
|
|
1032
1032
|
|
|
1033
1033
|
=head1 AUTHOR
|
|
1034
1034
|
|
|
1035
|
-
Copyright 2003-
|
|
1035
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
1036
1036
|
|
|
1037
1037
|
This library is free software; you can redistribute it and/or modify it
|
|
1038
1038
|
under the same terms as Perl itself.
|
|
@@ -4005,7 +4005,7 @@ and values.
|
|
|
4005
4005
|
|
|
4006
4006
|
=head1 AUTHOR
|
|
4007
4007
|
|
|
4008
|
-
Copyright 2003-
|
|
4008
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
4009
4009
|
|
|
4010
4010
|
This library is free software; you can redistribute it and/or modify it
|
|
4011
4011
|
under the same terms as Perl itself.
|
|
@@ -2878,7 +2878,7 @@ and values.
|
|
|
2878
2878
|
|
|
2879
2879
|
=head1 AUTHOR
|
|
2880
2880
|
|
|
2881
|
-
Copyright 2003-
|
|
2881
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2882
2882
|
|
|
2883
2883
|
This library is free software; you can redistribute it and/or modify it
|
|
2884
2884
|
under the same terms as Perl itself.
|
|
@@ -4751,7 +4751,7 @@ and values.
|
|
|
4751
4751
|
|
|
4752
4752
|
=head1 AUTHOR
|
|
4753
4753
|
|
|
4754
|
-
Copyright 2003-
|
|
4754
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
4755
4755
|
|
|
4756
4756
|
This library is free software; you can redistribute it and/or modify it
|
|
4757
4757
|
under the same terms as Perl itself.
|
|
@@ -7903,7 +7903,7 @@ and values.
|
|
|
7903
7903
|
|
|
7904
7904
|
=head1 AUTHOR
|
|
7905
7905
|
|
|
7906
|
-
Copyright 2003-
|
|
7906
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
7907
7907
|
|
|
7908
7908
|
This library is free software; you can redistribute it and/or modify it
|
|
7909
7909
|
under the same terms as Perl itself.
|
|
@@ -5841,7 +5841,7 @@ and values.
|
|
|
5841
5841
|
|
|
5842
5842
|
=head1 AUTHOR
|
|
5843
5843
|
|
|
5844
|
-
Copyright 2003-
|
|
5844
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
5845
5845
|
|
|
5846
5846
|
This library is free software; you can redistribute it and/or modify it
|
|
5847
5847
|
under the same terms as Perl itself.
|
|
@@ -2316,7 +2316,7 @@ and values.
|
|
|
2316
2316
|
|
|
2317
2317
|
=head1 AUTHOR
|
|
2318
2318
|
|
|
2319
|
-
Copyright 2003-
|
|
2319
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
2320
2320
|
|
|
2321
2321
|
This library is free software; you can redistribute it and/or modify it
|
|
2322
2322
|
under the same terms as Perl itself.
|
|
@@ -3208,7 +3208,7 @@ and values.
|
|
|
3208
3208
|
|
|
3209
3209
|
=head1 AUTHOR
|
|
3210
3210
|
|
|
3211
|
-
Copyright 2003-
|
|
3211
|
+
Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
|
|
3212
3212
|
|
|
3213
3213
|
This library is free software; you can redistribute it and/or modify it
|
|
3214
3214
|
under the same terms as Perl itself.
|