Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
perl5 /
Image /
ExifTool /
[ HOME SHELL ]
Name
Size
Permission
Action
Charset
[ DIR ]
drwxr-xr-x
Lang
[ DIR ]
drwxr-xr-x
AES.pm
18.66
KB
-rw-r--r--
AFCP.pm
10.38
KB
-rw-r--r--
AIFF.pm
9.59
KB
-rw-r--r--
APE.pm
9.06
KB
-rw-r--r--
APP12.pm
10.44
KB
-rw-r--r--
ASF.pm
30.21
KB
-rw-r--r--
Apple.pm
5.43
KB
-rw-r--r--
Audible.pm
11.52
KB
-rw-r--r--
BMP.pm
10.45
KB
-rw-r--r--
BPG.pm
7.53
KB
-rw-r--r--
BZZ.pm
17.46
KB
-rw-r--r--
BigTIFF.pm
11.27
KB
-rw-r--r--
BuildTagLookup.pm
121.94
KB
-rw-r--r--
CBOR.pm
11.51
KB
-rw-r--r--
Canon.pm
375.39
KB
-rw-r--r--
CanonCustom.pm
84.32
KB
-rw-r--r--
CanonRaw.pm
29.68
KB
-rw-r--r--
CanonVRD.pm
75.2
KB
-rw-r--r--
CaptureOne.pm
7.85
KB
-rw-r--r--
Casio.pm
62.21
KB
-rw-r--r--
Charset.pm
16.01
KB
-rw-r--r--
DICOM.pm
245.09
KB
-rw-r--r--
DJI.pm
6.31
KB
-rw-r--r--
DNG.pm
31.59
KB
-rw-r--r--
DPX.pm
9.51
KB
-rw-r--r--
DV.pm
9.75
KB
-rw-r--r--
DarwinCore.pm
15.43
KB
-rw-r--r--
DjVu.pm
12.46
KB
-rw-r--r--
EXE.pm
50.3
KB
-rw-r--r--
Exif.pm
246.64
KB
-rw-r--r--
FITS.pm
5.73
KB
-rw-r--r--
FLAC.pm
9.89
KB
-rw-r--r--
FLIF.pm
11.65
KB
-rw-r--r--
FLIR.pm
59.45
KB
-rw-r--r--
Fixup.pm
12.43
KB
-rw-r--r--
Flash.pm
27.5
KB
-rw-r--r--
FlashPix.pm
87.44
KB
-rw-r--r--
Font.pm
27.34
KB
-rw-r--r--
FotoStation.pm
7.97
KB
-rw-r--r--
FujiFilm.pm
54.47
KB
-rw-r--r--
GE.pm
2
KB
-rw-r--r--
GIF.pm
21.85
KB
-rw-r--r--
GIMP.pm
8.35
KB
-rw-r--r--
GPS.pm
19.53
KB
-rw-r--r--
GeoTiff.pm
87.51
KB
-rw-r--r--
Geotag.pm
62.87
KB
-rw-r--r--
GoPro.pm
28
KB
-rw-r--r--
H264.pm
39.29
KB
-rw-r--r--
HP.pm
8
KB
-rw-r--r--
HTML.pm
22.1
KB
-rw-r--r--
HtmlDump.pm
32.8
KB
-rw-r--r--
ICC_Profile.pm
45.63
KB
-rw-r--r--
ID3.pm
56.91
KB
-rw-r--r--
IPTC.pm
39.54
KB
-rw-r--r--
ISO.pm
6.81
KB
-rw-r--r--
ITC.pm
6.63
KB
-rw-r--r--
Import.pm
12.83
KB
-rw-r--r--
InDesign.pm
10.4
KB
-rw-r--r--
JPEG.pm
24.3
KB
-rw-r--r--
JPEGDigest.pm
212.38
KB
-rw-r--r--
JSON.pm
6.15
KB
-rw-r--r--
JVC.pm
3.57
KB
-rw-r--r--
Jpeg2000.pm
49.65
KB
-rw-r--r--
Kodak.pm
120.47
KB
-rw-r--r--
KyoceraRaw.pm
4.31
KB
-rw-r--r--
LIF.pm
4.66
KB
-rw-r--r--
LNK.pm
22.02
KB
-rw-r--r--
Leaf.pm
16.34
KB
-rw-r--r--
Lytro.pm
7.56
KB
-rw-r--r--
M2TS.pm
37.11
KB
-rw-r--r--
MIE.pm
102.09
KB
-rw-r--r--
MIEUnits.pod
13.68
KB
-rw-r--r--
MIFF.pm
9.05
KB
-rw-r--r--
MNG.pm
16.22
KB
-rw-r--r--
MOI.pm
4.14
KB
-rw-r--r--
MPC.pm
4.05
KB
-rw-r--r--
MPEG.pm
22.32
KB
-rw-r--r--
MPF.pm
8.94
KB
-rw-r--r--
MRC.pm
18.39
KB
-rw-r--r--
MWG.pm
30.64
KB
-rw-r--r--
MXF.pm
252.65
KB
-rw-r--r--
MacOS.pm
30.7
KB
-rw-r--r--
MakerNotes.pm
68.93
KB
-rw-r--r--
Matroska.pm
34.44
KB
-rw-r--r--
Microsoft.pm
52.13
KB
-rw-r--r--
Minolta.pm
99.93
KB
-rw-r--r--
MinoltaRaw.pm
16.49
KB
-rw-r--r--
Motorola.pm
5.31
KB
-rw-r--r--
Nikon.pm
431.96
KB
-rw-r--r--
NikonCapture.pm
28.13
KB
-rw-r--r--
NikonCustom.pm
290.78
KB
-rw-r--r--
NikonSettings.pm
71.88
KB
-rw-r--r--
Nintendo.pm
3.24
KB
-rw-r--r--
OOXML.pm
13.61
KB
-rw-r--r--
Ogg.pm
8.81
KB
-rw-r--r--
Olympus.pm
139.89
KB
-rw-r--r--
OpenEXR.pm
10.26
KB
-rw-r--r--
Opus.pm
2.22
KB
-rw-r--r--
Other.pm
2.63
KB
-rw-r--r--
PCX.pm
3.72
KB
-rw-r--r--
PDF.pm
90.77
KB
-rw-r--r--
PGF.pm
4.04
KB
-rw-r--r--
PICT.pm
33.2
KB
-rw-r--r--
PLIST.pm
17.07
KB
-rw-r--r--
PLUS.pm
147.71
KB
-rw-r--r--
PNG.pm
60.72
KB
-rw-r--r--
PPM.pm
4.97
KB
-rw-r--r--
PSP.pm
9.02
KB
-rw-r--r--
Palm.pm
11.9
KB
-rw-r--r--
Panasonic.pm
96.62
KB
-rw-r--r--
PanasonicRaw.pm
31.77
KB
-rw-r--r--
Parrot.pm
20.95
KB
-rw-r--r--
Pentax.pm
220.46
KB
-rw-r--r--
PhaseOne.pm
26.24
KB
-rw-r--r--
PhotoCD.pm
18.25
KB
-rw-r--r--
PhotoMechanic.pm
8.09
KB
-rw-r--r--
Photoshop.pm
43.36
KB
-rw-r--r--
PostScript.pm
29.11
KB
-rw-r--r--
PrintIM.pm
3.44
KB
-rw-r--r--
Qualcomm.pm
43.43
KB
-rw-r--r--
QuickTime.pm
409.72
KB
-rw-r--r--
QuickTimeStream.pl
126.03
KB
-rw-r--r--
RIFF.pm
70.97
KB
-rw-r--r--
RSRC.pm
9.58
KB
-rw-r--r--
RTF.pm
13.46
KB
-rw-r--r--
Radiance.pm
4.56
KB
-rw-r--r--
Rawzor.pm
6.17
KB
-rw-r--r--
Real.pm
26.89
KB
-rw-r--r--
Reconyx.pm
14.2
KB
-rw-r--r--
Red.pm
10.82
KB
-rw-r--r--
Ricoh.pm
37.18
KB
-rw-r--r--
Samsung.pm
54.64
KB
-rw-r--r--
Sanyo.pm
11.83
KB
-rw-r--r--
Scalado.pm
3.91
KB
-rw-r--r--
Shift.pl
23.28
KB
-rw-r--r--
Shortcuts.pm
9.81
KB
-rw-r--r--
Sigma.pm
33.16
KB
-rw-r--r--
SigmaRaw.pm
23.45
KB
-rw-r--r--
Sony.pm
439.69
KB
-rw-r--r--
SonyIDC.pm
11.95
KB
-rw-r--r--
Stim.pm
4.53
KB
-rw-r--r--
TagInfoXML.pm
33.14
KB
-rw-r--r--
TagLookup.pm
647.18
KB
-rw-r--r--
TagNames.pod
1.76
MB
-rw-r--r--
Text.pm
8.12
KB
-rw-r--r--
Theora.pm
3.41
KB
-rw-r--r--
Torrent.pm
11.58
KB
-rw-r--r--
Unknown.pm
1.69
KB
-rw-r--r--
VCard.pm
17.31
KB
-rw-r--r--
Validate.pm
29.75
KB
-rw-r--r--
Vorbis.pm
8.13
KB
-rw-r--r--
WTV.pm
12.97
KB
-rw-r--r--
WriteCanonRaw.pl
24.29
KB
-rw-r--r--
WriteExif.pl
130.6
KB
-rw-r--r--
WriteIPTC.pl
29.6
KB
-rw-r--r--
WritePDF.pl
29.02
KB
-rw-r--r--
WritePNG.pl
16.07
KB
-rw-r--r--
WritePhotoshop.pl
10.85
KB
-rw-r--r--
WritePostScript.pl
26.71
KB
-rw-r--r--
WriteQuickTime.pl
89.63
KB
-rw-r--r--
WriteXMP.pl
70.49
KB
-rw-r--r--
Writer.pl
301.76
KB
-rw-r--r--
XMP.pm
176.89
KB
-rw-r--r--
XMP2.pl
81.66
KB
-rw-r--r--
XMPStruct.pl
36.66
KB
-rw-r--r--
ZIP.pm
27.61
KB
-rw-r--r--
ZISRAW.pm
7.85
KB
-rw-r--r--
iWork.pm
7.79
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Leaf.pm
#------------------------------------------------------------------------------ # File: Leaf.pm # # Description: Read Creo Leaf EXIF meta information # # Revisions: 09/28/2005 - P. Harvey Created #------------------------------------------------------------------------------ package Image::ExifTool::Leaf; use strict; use vars qw($VERSION); use Image::ExifTool qw(:DataAccess :Utils); use Image::ExifTool::Exif; $VERSION = '1.07'; sub ProcessLeaf($$$); %Image::ExifTool::Leaf::Main = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Camera' }, NOTES => q{ These tags are found in .MOS images from Leaf digital camera backs as written by Creo Leaf Capture. They exist within the Leaf-specific directory structure of EXIF tag 0x8606. The tables below list observed Leaf tags, however ExifTool will extract any tags found in the Leaf directories even if they don't appear in these tables. }, icc_camera_profile => { Name => 'ICC_Profile', SubDirectory => { TagTable => 'Image::ExifTool::ICC_Profile::Main', }, }, icc_rgb_ws_profile => { Name => 'RGB_Profile', SubDirectory => { TagTable => 'Image::ExifTool::ICC_Profile::Main', }, }, camera_profile => { Name => 'CameraProfile', SubDirectory => { TagTable => 'Image::ExifTool::Leaf::CameraProfile', }, }, JPEG_preview_data => { %Image::ExifTool::previewImageTagInfo, Groups => { 2 => 'Preview' }, }, JPEG_preview_info => 'PreviewInfo', icc_camera_to_tone_space_flow => { Name => 'ToneSpaceFlow', Description => 'ICC To Tone Space Flow', Format => 'int16u', }, icc_camera_to_tone_matrix => { Name => 'ToneMatrix', Description => 'ICC To Tone Matrix', Format => 'int8u', Binary => 1, }, PDA_histogram_data => { Name => 'PDAHistogram', Binary => 1, }, pattern_ratation_angle => { Name => 'PatternAngle', Description => 'Pattern Rotation Angle', Format => 'int16u', Notes => '"ratation" is not a typo', }, back_serial_number => { Name => 'BackSerial', Description => 'Back Serial Number', PrintConv => '$val =~ s/ .*//s; $val', }, image_offset => { Format => 'int16u' }, ); %Image::ExifTool::Leaf::CameraProfile = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Camera' }, CamProf_version => 'CameraProfileVersion', CamProf_name => 'CameraName', CamProf_type => 'CameraType', CamProf_back_type => 'CameraBackType', CamProf_back_type => { Name => 'CameraBackType', }, CamProf_capture_profile => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::CaptureProfile', }, }, CamProf_image_profile => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::ImageProfile', }, }, ); %Image::ExifTool::Leaf::CaptureProfile = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, CaptProf_version => {}, CaptProf_name => {}, CaptProf_type => {}, CaptProf_back_type => {}, CaptProf_serial_number => { Name => 'CaptureSerial', Description => 'Capture Serial Number', PrintConv => '$val =~ s/ .*//s; $val', }, CaptProf_image_offset => {}, CaptProf_luminance_consts => {}, CaptProf_xy_offset_info => 'XYOffsetInfo', CaptProf_color_matrix => {}, CaptProf_reconstruction_type=> {}, CaptProf_image_fields => {}, CaptProf_image_bounds => {}, CaptProf_number_of_planes => {}, CaptProf_raw_data_rotation => {}, CaptProf_color_averages => {}, CaptProf_mosaic_pattern => {}, CaptProf_dark_correction_type=>{}, CaptProf_right_dark_rect => {}, CaptProf_left_dark_rect => {}, CaptProf_center_dark_rect => {}, CaptProf_CCD_rect => {}, CaptProf_CCD_valid_rect => {}, CaptProf_CCD_video_rect => {}, ); %Image::ExifTool::Leaf::ImageProfile = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, ImgProf_version => {}, ImgProf_name => {}, ImgProf_type => {}, ImgProf_back_type => {}, ImgProf_shoot_setup => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::ShootSetup', }, }, ImgProf_image_status => {}, ImgProf_rotation_angle => {}, ); %Image::ExifTool::Leaf::ShootSetup = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, ShootObj_version => {}, ShootObj_name => {}, ShootObj_type => {}, ShootObj_back_type => {}, ShootObj_capture_setup => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::CaptureSetup', }, }, ShootObj_color_setup => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::ColorSetup', }, }, ShootObj_save_setup => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::SaveSetup', }, }, ShootObj_camera_setup => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::CameraSetup', }, }, ShootObj_look_header => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::LookHeader', }, }, ); %Image::ExifTool::Leaf::CaptureSetup = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, CaptureObj_version => {}, CaptureObj_name => {}, CaptureObj_type => {}, CaptureObj_back_type => {}, CaptureObj_neutals => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::Neutrals', }, }, CaptureObj_selection => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::Selection', }, }, CaptureObj_tone_curve => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::ToneCurve', }, }, CaptureObj_sharpness => { SubDirectory => { TagTable => 'Image::ExifTool::Leaf::Sharpness', }, }, CaptureObj_single_quality => {}, CaptureObj_Multi_quality => {}, ); %Image::ExifTool::Leaf::Neutrals = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, NeutObj_version => {}, NeutObj_name => {}, NeutObj_type => {}, NeutObj_back_type => {}, NeutObj_neutrals => {}, NeutObj_color_casts => {}, NeutObj_shadow_end_points => {}, NeutObj_highlight_end_points => {}, ); %Image::ExifTool::Leaf::Selection = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, SelObj_version => {}, SelObj_name => {}, SelObj_type => {}, SelObj_back_type => {}, SelObj_rect => {}, SelObj_resolution => {}, SelObj_scale => {}, SelObj_locks => {}, SelObj_orientation => {}, ); %Image::ExifTool::Leaf::ToneCurve = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, ToneObj_version => {}, ToneObj_name => {}, ToneObj_type => {}, ToneObj_back_type => {}, ToneObj_npts => {}, ToneObj_tones => {}, ToneObj_gamma => {}, ); %Image::ExifTool::Leaf::Sharpness = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, SharpObj_version => {}, SharpObj_name => {}, SharpObj_type => {}, SharpObj_back_type => {}, SharpObj_sharp_method => {}, SharpObj_data_len => {}, SharpObj_sharp_info => {}, ); %Image::ExifTool::Leaf::ColorSetup = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Image' }, ColorObj_version => {}, ColorObj_name => {}, ColorObj_type => {}, ColorObj_back_type => {}, ColorObj_has_ICC => {}, ColorObj_input_profile => {}, ColorObj_output_profile => {}, ColorObj_color_mode => {}, ColorObj_color_type => {}, ); %Image::ExifTool::Leaf::SaveSetup = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Other' }, SaveObj_version => {}, SaveObj_name => {}, SaveObj_type => {}, SaveObj_back_type => {}, SaveObj_leaf_auto_active=> {}, SaveObj_leaf_hot_folder => {}, SaveObj_leaf_output_file_type => {}, SaveObj_leaf_auto_base_name => {}, SaveObj_leaf_save_selection => {}, SaveObj_leaf_open_proc_HDR => {}, SaveObj_std_auto_active => {}, SaveObj_std_hot_folder => {}, SaveObj_std_output_file_type => {}, SaveObj_std_output_color_mode => {}, SaveObj_std_output_bit_depth => {}, SaveObj_std_base_name => {}, SaveObj_std_save_selection => {}, SaveObj_std_oxygen => {}, SaveObj_std_open_in_photoshop => {}, SaveObj_std_scaled_output => {}, SaveObj_std_sharpen_output => {}, ); %Image::ExifTool::Leaf::CameraSetup = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Camera' }, CameraObj_version => {}, CameraObj_name => {}, CameraObj_type => {}, CameraObj_back_type => {}, CameraObj_ISO_speed => {}, CameraObj_strobe => {}, CameraObj_camera_type => {}, CameraObj_lens_type => {}, CameraObj_lens_ID => {}, ); %Image::ExifTool::Leaf::LookHeader = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Other' }, LookHead_version => {}, LookHead_name => {}, LookHead_type => {}, LookHead_back_type => {}, ); # tag table for any unknown Leaf directories %Image::ExifTool::Leaf::Unknown = ( PROCESS_PROC => \&ProcessLeaf, GROUPS => { 0 => 'Leaf', 2 => 'Unknown' }, ); # table for Leaf SubIFD entries %Image::ExifTool::Leaf::SubIFD = ( GROUPS => { 0 => 'MakerNotes', 1 => 'LeafSubIFD', 2 => 'Image'}, WRITE_PROC => \&Image::ExifTool::Exif::WriteExif, NOTES => q{ Leaf writes a TIFF-format sub-IFD inside IFD0 of a MOS image. No tags in this sub-IFD are currently known, except for tags 0x8602 and 0x8606 which really shouldn't be here anyway (so they don't appear in the table below) because they duplicate references to the same data from tags with the same ID in IFD0. }, ); # prepare Leaf tables by generating tag 'Name' and table 'NOTES' { my @tableList = ( 'Image::ExifTool::Leaf::Main' ); my ($tag, %doneTable); # keep prefix in tag name of common tags my %keepPrefix = ( Version=>1, Name=>1, Type=>1, BackType=>1 ); while (@tableList) { my $table = shift @tableList; next if $doneTable{$table}; my $prefix = ($table =~ /::Main$/) ? undef : ''; $doneTable{$table} = 1; no strict 'refs'; $table = \%$table; use strict 'refs'; foreach $tag (keys %$table) { my $tagInfo = $$table{$tag}; next unless ref $tagInfo eq 'HASH'; next if $tag eq 'GROUPS'; if (defined $prefix and not $prefix) { ($prefix = $tag) =~ s/_.*//; } unless ($$tagInfo{Name}) { my $name; ($name = $tag) =~ s/_(.)/\U$1/g; if ($prefix) { $name =~ s/^$prefix//; $name = $prefix . $name if $keepPrefix{$name}; } $$tagInfo{Name} = ucfirst($name); } next unless $$tagInfo{SubDirectory}; my $subTable = $tagInfo->{SubDirectory}->{TagTable}; next unless $subTable =~ /::Leaf::/; push @tableList, $subTable; } next unless $prefix; $$table{NOTES} = "All B<Tag ID>'s in the following table have a " . "leading '${prefix}_' which\nhas been removed.\n"; } } #------------------------------------------------------------------------------ # Process Leaf information # Inputs: 0) ExifTool object reference # 1) Reference to directory information hash # 2) Pointer to tag table for this directory # Returns: 1 on success, otherwise returns 0 and sets a Warning sub ProcessLeaf($$$) { my ($et, $dirInfo, $tagTablePtr) = @_; my $dataPt = $$dirInfo{DataPt}; my $dirStart = $$dirInfo{DirStart} || 0; my $dirLen = $$dirInfo{DirLen} || $$dirInfo{DataLen} - $dirStart; my $dirEnd = $dirStart + $dirLen; my $verbose = $et->Options('Verbose'); my $pos = $dirStart; my $hdrLen = 52; # header length for PKTS information my $success; $verbose and $et->VerboseDir('Leaf'); for (;;) { last if $pos + $hdrLen > $dirEnd; my $header = substr($$dataPt, $pos, $hdrLen); last unless substr($header, 0, 4) eq 'PKTS'; $success = 1; my $size = Get32u(\$header, 48); $pos += $hdrLen; if ($pos + $size > $dirEnd) { $et->Warn('Truncated Leaf data'); last; } my $tag = substr($header, 8, 40); $tag =~ s/\0.*//s; next unless $tag; my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag); # generate tag info for unknown tags my $val; if ($tagInfo and $$tagInfo{Format}) { $val = ReadValue($dataPt, $pos, $$tagInfo{Format}, undef, $size); } else { $val = substr($$dataPt, $pos, $size); } unless ($tagInfo) { my $name = ucfirst($tag); $name =~ s/_(.)/\U$1/g; if ($val =~ /^PKTS\0\0\0\x01/) { # also unpack unknown directories $tagInfo = { Name => $name, SubDirectory => { TagTable => 'Image::ExifTool::Leaf::Unknown' }, }; } elsif ($tagTablePtr ne \%Image::ExifTool::Leaf::Main or $et->Options('Unknown')) { $tagInfo = { Name => $name, Writable => 0, PrintConv => 'length($val) > 60 ? substr($val,0,55) . "[...]" : $val', }; # make tags in main table unknown because they tend to be binary $$tagInfo{Unknown} = 1 if $tagTablePtr eq \%Image::ExifTool::Leaf::Main; } $tagInfo and AddTagToTable($tagTablePtr, $tag, $tagInfo); } if ($verbose) { $et->VerboseInfo($tag, $tagInfo, Table => $tagTablePtr, Value => $val, DataPt => $dataPt, DataPos => $$dirInfo{DataPos}, Size => $size, Start => $pos, ); } if ($tagInfo) { if ($$tagInfo{SubDirectory}) { my %subdirInfo = ( DataPt => $dataPt, DirLen => $size, DirStart => $pos, DataPos => $$dirInfo{DataPos}, DirName => 'Leaf PKTS', ); my $subTable = GetTagTable($tagInfo->{SubDirectory}->{TagTable}); $et->ProcessDirectory(\%subdirInfo, $subTable); } else { $val =~ tr/\n/ /; # translate newlines to spaces $val =~ s/\0+$//; # remove null terminators $et->FoundTag($tagInfo, $val); } } $pos += $size; } $success or $et->Warn('Bad format Leaf data'); return $success; } 1; # end __END__ =head1 NAME Image::ExifTool::Leaf - Read Creo Leaf EXIF meta information =head1 SYNOPSIS This module is loaded automatically by Image::ExifTool when required. =head1 DESCRIPTION This module contains definitions required by Image::ExifTool to interpret meta information from Leaf digital camera backs written by Creo Leaf Capture. =head1 AUTHOR Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L<Image::ExifTool::TagNames/Leaf Tags>, L<Image::ExifTool(3pm)|Image::ExifTool> =cut
Close