git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
word/edit: method generate() to create thumbnail variants
[sheet.git]
/
Shiar_Sheet
/
ImagePrep.pm
diff --git
a/Shiar_Sheet/ImagePrep.pm
b/Shiar_Sheet/ImagePrep.pm
index f76cb31d7f4f3a448d91c6799c9fc8277a18a19a..b5038cf248bcfe6dc0a62d7c730dec27f0328d32 100644
(file)
--- a/
Shiar_Sheet/ImagePrep.pm
+++ b/
Shiar_Sheet/ImagePrep.pm
@@
-3,7
+3,7
@@
package Shiar_Sheet::ImagePrep;
use 5.014;
use warnings;
use 5.014;
use warnings;
-our $VERSION = '1.0
1
';
+our $VERSION = '1.0
2
';
sub new {
my ($class, $target) = @_;
sub new {
my ($class, $target) = @_;
@@
-33,16
+33,23
@@
sub dimensions {
return split /\s/, $xy, 3;
}
return split /\s/, $xy, 3;
}
-sub
convert
{
- my ($imgpath, $thumbpath, $cmds
, $xyres
) = @_;
+sub
generate
{
+ my ($imgpath, $thumbpath, $cmds) = @_;
if (not -e $$imgpath) {
return !-e $thumbpath || unlink $thumbpath;
}
if (not -e $$imgpath) {
return !-e $thumbpath || unlink $thumbpath;
}
+ $cmds //= [];
+ $imgpath->convert($thumbpath, $cmds, '300x200') and # low-res cover
+ $imgpath->convert($thumbpath =~ s/\.jpg$/.webp/r,
+ $cmds, '600x400' # higher dpi
+ );
+}
+sub convert {
+ my ($imgpath, $thumbpath, $cmds, $xyres) = @_;
#my ($w, $h) = $imgpath->dimensions;
#my ($w, $h) = $imgpath->dimensions;
- $xyres //= '300x200'; # cover
- my $aspect = 3/2;
- my @cmds = @{ $cmds // [] };
+ #my $aspect = 3/2; # $xyres
+ my @cmds = @{$cmds};
if (my ($cmdarg) = grep { $cmds[$_] eq '-area' } 0 .. $#cmds) {
# replace option by permillage crop
my @dim = map { $_ / 1000 } split /\D/, $cmds[$cmdarg + 1];
if (my ($cmdarg) = grep { $cmds[$_] eq '-area' } 0 .. $#cmds) {
# replace option by permillage crop
my @dim = map { $_ / 1000 } split /\D/, $cmds[$cmdarg + 1];