- Timestamp:
- 2021-02-26T19:39:51+13:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/cpan/Image/ExifTool/CaptureOne.pm
r24107 r34921 18 18 use Image::ExifTool::ZIP; 19 19 20 $VERSION = '1.0 2';20 $VERSION = '1.04'; 21 21 22 22 # CaptureOne COS XML tags … … 34 34 # Inputs: 0) attribute list ref, 1) attr hash ref, 35 35 # 2) property name ref, 3) property value ref 36 # Returns: true if value was changed 36 37 sub HandleCOSAttrs($$$$) 37 38 { 38 39 my ($attrList, $attrs, $prop, $valPt) = @_; 40 my $changed; 39 41 if (not length $$valPt and defined $$attrs{K} and defined $$attrs{V}) { 40 42 $$prop = $$attrs{K}; … … 51 53 } 52 54 } 53 } 55 $changed = 1; 56 } 57 return $changed; 54 58 } 55 59 … … 62 66 sub FoundCOS($$$$;$) 63 67 { 64 my ($e xifTool, $tagTablePtr, $props, $val, $attrs) = @_;68 my ($et, $tagTablePtr, $props, $val, $attrs) = @_; 65 69 66 70 my $tag = $$props[-1]; 67 71 unless ($$tagTablePtr{$tag}) { 68 $e xifTool->VPrint(0, " | [adding $tag]\n");72 $et->VPrint(0, " | [adding $tag]\n"); 69 73 my $name = ucfirst $tag; 70 74 $name =~ tr/-_a-zA-Z0-9//dc; … … 78 82 $tagInfo{PrintConv} = '$self->ConvertDateTime($val)'; 79 83 } 80 Image::ExifTool::AddTagToTable($tagTablePtr, $tag, \%tagInfo);84 AddTagToTable($tagTablePtr, $tag, \%tagInfo); 81 85 } 82 86 # convert from UTF8 to ExifTool Charset 83 $val = $e xifTool->Decode($val, "UTF8");87 $val = $et->Decode($val, "UTF8"); 84 88 # un-escape XML character entities 85 89 $val = Image::ExifTool::XMP::UnescapeXML($val); 86 $e xifTool->HandleTag($tagTablePtr, $tag, $val);90 $et->HandleTag($tagTablePtr, $tag, $val); 87 91 return 0; 88 92 } … … 94 98 sub ProcessCOS($$) 95 99 { 96 my ($e xifTool, $dirInfo) = @_;100 my ($et, $dirInfo) = @_; 97 101 98 102 # process using XMP module, but override handling of attributes and tags … … 102 106 }; 103 107 my $tagTablePtr = GetTagTable('Image::ExifTool::CaptureOne::Main'); 104 my $success = $e xifTool->ProcessDirectory($dirInfo, $tagTablePtr);108 my $success = $et->ProcessDirectory($dirInfo, $tagTablePtr); 105 109 delete $$dirInfo{XMLParseArgs}; 106 110 return $success; … … 116 120 sub ProcessEIP($$) 117 121 { 118 my ($e xifTool, $dirInfo) = @_;122 my ($et, $dirInfo) = @_; 119 123 my $zip = $$dirInfo{ZIP}; 120 124 my ($file, $buff, $status, $member, %parseFile); 121 125 122 $e xifTool->SetFileType('EIP');126 $et->SetFileType('EIP'); 123 127 124 128 # must catch all Archive::Zip warnings … … 156 160 $file = $member->fileName(); 157 161 next unless defined $file; 158 $e xifTool->VPrint(0, "File: $file\n");162 $et->VPrint(0, "File: $file\n"); 159 163 # set the document number and extract ZIP tags 160 $$e xifTool{DOC_NUM} = ++$docNum;161 Image::ExifTool::ZIP::HandleMember($e xifTool, $member);164 $$et{DOC_NUM} = ++$docNum; 165 Image::ExifTool::ZIP::HandleMember($et, $member); 162 166 if (%parseFile) { 163 167 next unless $parseFile{$file}; … … 170 174 # Note: this could use a LOT of memory here for RAW images... 171 175 ($buff, $status) = $zip->contents($member); 172 $status and $e xifTool->Warn("Error extracting $file"), next;176 $status and $et->Warn("Error extracting $file"), next; 173 177 if ($file =~ /\.cos$/i) { 174 178 # process Capture One Settings files … … 178 182 DataLen => length $buff, 179 183 ); 180 ProcessCOS($e xifTool, \%dirInfo);184 ProcessCOS($et, \%dirInfo); 181 185 } else { 182 186 # set HtmlDump error if necessary because it doesn't work with embedded files 183 if ($$e xifTool{HTML_DUMP}) {184 $$e xifTool{HTML_DUMP}{Error} = "Sorry, can't dump images embedded in ZIP files";187 if ($$et{HTML_DUMP}) { 188 $$et{HTML_DUMP}{Error} = "Sorry, can't dump images embedded in ZIP files"; 185 189 } 186 190 # process IIQ, JPEG and TIFF images 187 $e xifTool->ExtractInfo(\$buff, { ReEntry => 1 });191 $et->ExtractInfo(\$buff, { ReEntry => 1 }); 188 192 } 189 193 undef $buff; # (free memory now) 190 194 } 191 delete $$e xifTool{DOC_NUM};195 delete $$et{DOC_NUM}; 192 196 return 1; 193 197 } … … 218 222 =head1 AUTHOR 219 223 220 Copyright 2003-20 11, Phil Harvey (phil at owl.phy.queensu.ca)224 Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com) 221 225 222 226 This library is free software; you can redistribute it and/or modify it
Note:
See TracChangeset
for help on using the changeset viewer.