2
2
3
3
# Author: Trizen
4
4
# Date: 30 October 2023
5
- # Edit: 10 August 2024
5
+ # Edit: 26 September 2025
6
6
# https://github.com/trizen
7
7
8
8
# Resize images to a given width or height, keeping aspect ratio.
@@ -43,7 +43,7 @@ ($code)
43
43
44
44
-q --quality=s : quality of scaling: 'normal', 'preview' or 'mixing' (default: $qtype )
45
45
-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
47
47
-o --outdir=s : create resized images into this directory
48
48
49
49
examples:
@@ -143,6 +143,14 @@ ($image)
143
143
die " No --width or --height specified..." ;
144
144
}
145
145
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
+
146
154
my ($dev , $ino , $mode , $nlink , $uid , $gid , $rdev , $size , $atime , $mtime , $ctime , $blksize , $blocks ) = stat ($image );
147
155
148
156
# Create resized image into $outdir directory
@@ -167,6 +175,15 @@ ($image)
167
175
# Set original permissions
168
176
chmod ($mode & 07777, $image )
169
177
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 );
170
187
}
171
188
172
189
return 1;
0 commit comments