exiftool_vendored 13.18.0 → 13.21.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.
@@ -50,7 +50,7 @@ use Image::ExifTool::Exif;
50
50
  use Image::ExifTool::GPS;
51
51
  require Exporter;
52
52
 
53
- $VERSION = '3.70';
53
+ $VERSION = '3.71';
54
54
  @ISA = qw(Exporter);
55
55
  @EXPORT_OK = qw(EscapeXML UnescapeXML);
56
56
 
@@ -165,7 +165,7 @@ my %xmpNS = (
165
165
  #
166
166
  plus => 'http://ns.useplus.org/ldf/xmp/1.0/',
167
167
  # (prism recommendations from http://www.prismstandard.org/specifications/3.0/Image_Guide_3.0.htm)
168
- prism => 'http://prismstandard.org/namespaces/basic/2.0/',
168
+ prism => 'http://prismstandard.org/namespaces/basic/2.0/', # (maybe left at 2.0 to avoid compatibility issues -- think hard before changing this)
169
169
  prl => 'http://prismstandard.org/namespaces/prl/2.1/',
170
170
  pur => 'http://prismstandard.org/namespaces/prismusagerights/2.1/',
171
171
  pmi => 'http://prismstandard.org/namespaces/pmi/2.2/',
@@ -1247,8 +1247,22 @@ my %sPantryItem = (
1247
1247
  NAMESPACE => 'pdfx',
1248
1248
  NOTES => q{
1249
1249
  PDF extension tags. This namespace is used to store application-defined PDF
1250
- information, so there are no pre-defined tags. User-defined tags must be
1251
- created to enable writing of XMP-pdfx information.
1250
+ information, so there are few pre-defined tags. User-defined tags must be
1251
+ created to enable writing of other XMP-pdfx information.
1252
+ },
1253
+ SourceModified => {
1254
+ Name => 'SourceModified',
1255
+ Groups => { 2 => 'Time' },
1256
+ Shift => 'Time',
1257
+ ValueConv => 'require Image::ExifTool::PDF; $val = Image::ExifTool::PDF::ConvertPDFDate($val)',
1258
+ ValueConvInv => q{
1259
+ require Image::ExifTool::PDF;
1260
+ $val = Image::ExifTool::PDF::WritePDFValue($self,$val,"date");
1261
+ $val =~ tr/()//d;
1262
+ return $val;
1263
+ },
1264
+ PrintConv => '$self->ConvertDateTime($val)',
1265
+ PrintConvInv => '$self->InverseDateTime($val)',
1252
1266
  },
1253
1267
  );
1254
1268
 
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars $advFmtSelf);
31
31
 
32
- $VERSION = '13.18';
32
+ $VERSION = '13.21';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -1152,6 +1152,7 @@ my @availableOptions = (
1152
1152
  [ 'NoPDFList', undef, 'flag to avoid splitting PDF List-type tag values' ],
1153
1153
  [ 'NoWarning', undef, 'regular expression for warnings to suppress' ],
1154
1154
  [ 'Password', undef, 'password for password-protected PDF documents' ],
1155
+ [ 'Plot', undef, 'SVG plot settings' ],
1155
1156
  [ 'PrintCSV', undef, 'flag to print CSV directly (selected metadata types only)' ],
1156
1157
  [ 'PrintConv', 1, 'flag to enable print conversion' ],
1157
1158
  [ 'QuickTimeHandler', 1, 'flag to add mdir Handler to newly created Meta box' ],
@@ -2587,6 +2588,10 @@ sub Options($$;@)
2587
2588
  } else {
2588
2589
  warn("Can't set $param to undef\n");
2589
2590
  }
2591
+ } elsif ($param eq 'Plot') {
2592
+ # add to existing plot settings
2593
+ $newVal = "$oldVal,$newVal" if defined $oldVal and defined $newVal;
2594
+ $$options{$param} = $newVal;
2590
2595
  } elsif (lc $param eq 'geodir') {
2591
2596
  $Image::ExifTool::Geolocation::geoDir = $newVal;
2592
2597
  } else {
@@ -9151,10 +9156,11 @@ sub AddTagToTable($$;$$)
9151
9156
  # Handle simple extraction of new tag information
9152
9157
  # Inputs: 0) ExifTool object ref, 1) tag table reference, 2) tagID, 3) value,
9153
9158
  # 4-N) parameters hash: Index, DataPt, DataPos, Base, Start, Size, Parent,
9154
- # TagInfo, ProcessProc, RAF, Format, Count
9159
+ # TagInfo, ProcessProc, RAF, Format, Count, MakeTagInfo
9155
9160
  # Returns: tag key or undef if tag not found
9156
9161
  # Notes: if value is not defined, it is extracted from DataPt using TagInfo
9157
9162
  # Format and Count if provided
9163
+ # - set MakeTagInfo to add tag info for unknown tags with name made from tag ID
9158
9164
  sub HandleTag($$$$;%)
9159
9165
  {
9160
9166
  my ($self, $tagTablePtr, $tag, $val, %parms) = @_;
@@ -9166,6 +9172,14 @@ sub HandleTag($$$$;%)
9166
9172
 
9167
9173
  if ($tagInfo) {
9168
9174
  $subdir = $$tagInfo{SubDirectory};
9175
+ } elsif ($parms{MakeTagInfo}) {
9176
+ $self->VPrint(0, $$self{INDENT}, "[adding $tag]\n") if $verbose;
9177
+ my $name = $tag;
9178
+ $name =~ s/([^A-Za-z])([a-z])/$1\u$2/g; # capitalize words
9179
+ $name =~ tr/-_a-zA-Z0-9//dc; # remove illegal characters
9180
+ $name = "Tag$name" if length($name) < 2 or $name =~ /^[-0-9]/;
9181
+ $tagInfo = { Name => ucfirst($name) };
9182
+ AddTagToTable($tagTablePtr, $tag, $tagInfo);
9169
9183
  } else {
9170
9184
  return undef unless $verbose;
9171
9185
  $tagInfo = { Name => "tag $tag" }; # create temporary tagInfo hash
@@ -9223,10 +9237,11 @@ sub HandleTag($$$$;%)
9223
9237
  }
9224
9238
  $self->Warn("RawConv $tag: " . CleanWarning()) if $evalWarning;
9225
9239
  return undef unless defined $val;
9226
- $val = $$val if ref $val eq 'SCALAR';
9227
- $dataPt = \$val;
9240
+ $dataPt = ref $val eq 'SCALAR' ? $val : \$val;
9228
9241
  $subdirStart = 0;
9229
- $subdirLen = length $val;
9242
+ $subdirLen = length $$dataPt;
9243
+ } elsif (not $dataPt) {
9244
+ $dataPt = ref $val eq 'SCALAR' ? $val : \$val;
9230
9245
  }
9231
9246
  if ($$subdir{Start}) {
9232
9247
  my $valuePtr = 0;
@@ -9235,7 +9250,6 @@ sub HandleTag($$$$;%)
9235
9250
  $subdirStart += $off;
9236
9251
  $subdirLen -= $off;
9237
9252
  }
9238
- $dataPt or $dataPt = \$val;
9239
9253
  # process subdirectory information
9240
9254
  my %dirInfo = (
9241
9255
  DirName => $$subdir{DirName} || $$tagInfo{Name},
@@ -993,6 +993,33 @@ Password for reading/writing password-protected PDF documents. Ignored if a
993
993
  password is not required. Character encoding of the password is determined
994
994
  by the value of the Charset option at processing time. Default is undef.
995
995
 
996
+ =item Plot
997
+
998
+ Settings to override defaults for SVG plot feature. Value is a comma
999
+ delimited string of settings, or undef to revert to default settings.
1000
+ Settings are accumulated if this option is set multiple times. Commas in
1001
+ the settings must be escaped as "&#44;". Valid settings and their default
1002
+ values are:
1003
+
1004
+ "Type=Line" - plot type (Line, Scatter or Histogram)
1005
+ "Style=Line" - data style (Line, Marker and/or Fill)
1006
+ "NBins=20" - number of bins for histogram plot
1007
+ "Size=800 600" - width,height of output image
1008
+ "Margin=60 15 15 30" - left,top,right,bottom margins around plot area
1009
+ "Legend=0 0" - x,y offset to shift plot legend
1010
+ "TxtPad=10 10" - padding between text and x,y scale
1011
+ "LineSpacing=20" - spacing between text lines
1012
+ Title, XLabel, YLabel - plot title and x/y axis labels (no default)
1013
+ XMin, XMax - x axis minimum/maximum (autoscaling if not set)
1014
+ YMin, YMax - y axis minimum/maximum
1015
+ Split - flag to split strings of numbers into lists
1016
+ (> 1 to split into lists of N items)
1017
+ "Grid=darkgray" - grid color
1018
+ "Text=black" - color of text and plot border
1019
+ "Bkg=" - background color (default is transparent)
1020
+ "Cols=red green blue black orange gray purple cyan brown pink"
1021
+ - colors for plot data
1022
+
996
1023
  =item PrintConv
997
1024
 
998
1025
  Flag to enable automatic print conversion. Also enables inverse
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 13.18
3
+ Version: 13.21
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('13.18.0')
4
+ VERSION = Gem::Version.new('13.21.0')
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exiftool_vendored
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.18.0
4
+ version: 13.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2025-02-04 00:00:00.000000000 Z
12
+ date: 2025-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool
@@ -256,6 +256,7 @@ files:
256
256
  - bin/lib/Image/ExifTool/PhotoCD.pm
257
257
  - bin/lib/Image/ExifTool/PhotoMechanic.pm
258
258
  - bin/lib/Image/ExifTool/Photoshop.pm
259
+ - bin/lib/Image/ExifTool/Plot.pm
259
260
  - bin/lib/Image/ExifTool/PostScript.pm
260
261
  - bin/lib/Image/ExifTool/PrintIM.pm
261
262
  - bin/lib/Image/ExifTool/Protobuf.pm