- Timestamp:
- 2011-06-01T12:33:42+12:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/cpan/Image/ExifTool/WritePhotoshop.pl
r16842 r24107 55 55 my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $start); 56 56 my $dirEnd = $start + $dirLen; 57 my $verbose = $exifTool->Options('Verbose');58 my $out = $exifTool->Options('TextOut');59 57 my $newData = ''; 60 58 … … 104 102 $tagInfo = $$newTags{$tagID}; 105 103 delete $$newTags{$tagID}; 106 my $n ewValueHash = $exifTool->GetNewValueHash($tagInfo);104 my $nvHash = $exifTool->GetNewValueHash($tagInfo); 107 105 # check to see if we are overwriting this tag 108 106 $value = substr($$dataPt, $pos, $size); 109 if (Image::ExifTool::IsOverwriting($newValueHash, $value)) { 110 $verbose > 1 and print $out " - Photoshop:$$tagInfo{Name} = '$value'\n"; 111 $value = Image::ExifTool::GetNewValues($newValueHash); 107 my $isOverwriting = Image::ExifTool::IsOverwriting($nvHash, $value); 108 # handle special 'new' and 'old' values for IPTCDigest 109 if (not $isOverwriting and $tagInfo eq $iptcDigestInfo) { 110 if (grep /^new$/, @{$$nvHash{DelValue}}) { 111 $isOverwriting = 1 if $$exifTool{NewIPTCDigest} and 112 $$exifTool{NewIPTCDigest} eq $value; 113 } 114 if (grep /^old$/, @{$$nvHash{DelValue}}) { 115 $isOverwriting = 1 if $$exifTool{OldIPTCDigest} and 116 $$exifTool{OldIPTCDigest} eq $value; 117 } 118 } 119 if ($isOverwriting) { 120 $exifTool->VerboseValue("- Photoshop:$$tagInfo{Name}", $value); 121 # handle IPTCDigest specially because we want to write it last 122 # so the new IPTC digest will be known 123 if ($tagInfo eq $iptcDigestInfo) { 124 $$newTags{$tagID} = $tagInfo; # add later 125 $value = undef; 126 } else { 127 $value = Image::ExifTool::GetNewValues($nvHash); 128 } 112 129 ++$exifTool->{CHANGED}; 113 130 next unless defined $value; # next if tag is being deleted 114 131 # set resource name if necessary 115 132 SetResourceName($tagInfo, $name, \$value); 116 $ verbose > 1 and print $out " + Photoshop:$$tagInfo{Name} = '$value'\n";133 $exifTool->VerboseValue("+ Photoshop:$$tagInfo{Name}", $value); 117 134 } 118 135 } else { … … 168 185 if ($$newTags{$tagID}) { 169 186 $tagInfo = $$newTags{$tagID}; 170 my $newValueHash = $exifTool->GetNewValueHash($tagInfo); 171 $value = Image::ExifTool::GetNewValues($newValueHash); 187 my $nvHash = $exifTool->GetNewValueHash($tagInfo); 188 $value = Image::ExifTool::GetNewValues($nvHash); 189 # handle new IPTCDigest value specially 190 if ($tagInfo eq $iptcDigestInfo and defined $value) { 191 if ($value eq 'new') { 192 $value = $$exifTool{NewIPTCDigest}; 193 } elsif ($value eq 'old') { 194 $value = $$exifTool{OldIPTCDigest}; 195 } 196 # (we already know we want to create this tag) 197 } else { 198 # don't add this tag unless specified 199 next unless Image::ExifTool::IsCreating($nvHash); 200 } 172 201 next unless defined $value; # next if tag is being deleted 173 # don't add this tag unless specified 174 next unless Image::ExifTool::IsCreating($newValueHash); 175 $verbose > 1 and print $out " + Photoshop:$$tagInfo{Name} = '$value'\n"; 202 $exifTool->VerboseValue("+ Photoshop:$$tagInfo{Name}", $value); 176 203 ++$exifTool->{CHANGED}; 177 204 } else { … … 227 254 =head1 AUTHOR 228 255 229 Copyright 2003-20 07, Phil Harvey (phil at owl.phy.queensu.ca)256 Copyright 2003-2011, Phil Harvey (phil at owl.phy.queensu.ca) 230 257 231 258 This library is free software; you can redistribute it and/or modify it
Note:
See TracChangeset
for help on using the changeset viewer.