dieren: generate images using common ImagePrep module
[sheet.git] / tools / mkimgthumb
index 217b7734d45ec55c2d2100bb314645ade9ace804..8f0097abba417291cdb3bd5bf682c29e2302fb15 100755 (executable)
@@ -1,6 +1,8 @@
 #!/usr/bin/env perl
 use 5.014;
 use warnings;
+use lib $0 =~ s{[^/]+$}{..}r; # project root
+use Shiar_Sheet::ImagePrep '1.03';
 
 my $failcount = 0;
 
@@ -21,13 +23,18 @@ for my $src (@ARGV) {
                        if @crop > 2;
                unshift @cmds, -chop => "$crop[0]%x$crop[1]%";
        }
-       unshift @cmds, -gravity => 'northwest' if @cmds;
-       push @cmds, '-strip', -gravity => 'north', -quality => 60;
+       push @cmds, -gravity => 'north';
        my @cmdwebp = (-resize => '630x420^', -extent => '630x420', -quality => 30);
        my @cmdjpeg = (-resize => '300x200^', -extent => '300x200');
-       system(convert => $src, @cmds, @cmdjpeg, "../$name.jpg" ) == 0 and
-       system(convert => $src, @cmds, @cmdwebp, "../$name.webp") == 0
-               or $failcount += warn "error creating $name.jpg from $src\n";
+       eval {
+               my $image = Shiar_Sheet::ImagePrep->new($src);
+               $image->convert("../$name.jpg",  [@cmds, @cmdjpeg]);
+               $image->convert("../$name.webp", [@cmds, @cmdwebp]);
+       } or do {
+               warn "error creating image:\n";
+               warn ref $@ eq 'ARRAY' ? $@->[1] : $@ if $@;
+               $failcount++;
+       };
 }
 
 exit $failcount;