Skip to content

Commit 2f72cba

Browse files
committed
modified: Image/resize_images.pl -- extended the --preserve option to keep all EXIF tags. (requires Image::ExifTool)
1 parent c0a203d commit 2f72cba

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

Image/resize_images.pl

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Author: Trizen
44
# Date: 30 October 2023
5-
# Edit: 10 August 2024
5+
# Edit: 26 September 2025
66
# https://github.com/trizen
77

88
# Resize images to a given width or height, keeping aspect ratio.
@@ -43,7 +43,7 @@ ($code)
4343
4444
-q --quality=s : quality of scaling: 'normal', 'preview' or 'mixing' (default: $qtype)
4545
-f --formats=s,s : specify more image formats (default: @img_formats)
46-
-p --preserve! : preserve original file timestamps and permissions
46+
-p --preserve! : preserve file original timestamps and metadata info
4747
-o --outdir=s : create resized images into this directory
4848
4949
examples:
@@ -143,6 +143,14 @@ ($image)
143143
die "No --width or --height specified...";
144144
}
145145

146+
my ($exif_info, $exifTool);
147+
148+
if ($preserve_attr) {
149+
require Image::ExifTool;
150+
$exifTool = Image::ExifTool->new;
151+
$exif_info = $exifTool->SetNewValuesFromFile($image);
152+
}
153+
146154
my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($image);
147155

148156
# Create resized image into $outdir directory
@@ -167,6 +175,15 @@ ($image)
167175
# Set original permissions
168176
chmod($mode & 07777, $image)
169177
or warn "Can't change permissions: $!\n";
178+
179+
$exifTool = Image::ExifTool->new;
180+
181+
foreach my $key (keys %$exif_info) {
182+
my $value = $exif_info->{$key};
183+
$exifTool->SetNewValue($key, $value);
184+
}
185+
186+
$exifTool->WriteInfo($image);
170187
}
171188

172189
return 1;

0 commit comments

Comments
 (0)