#!/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; for my $src (@ARGV) { my ($name, @cmds) = split /:(? or next; } s/\\(.)/$1/g for @cmds; say $name; if (@cmds and $cmds[0] =~ /^\d/) { # crop shorthand from initial dimension argument my @crop = split /\D/, shift @cmds; unshift @cmds, -gravity => 'southeast', -chop => "$crop[2]%x$crop[3]%" if @crop > 2; unshift @cmds, -chop => "$crop[0]%x$crop[1]%"; } push @cmds, -gravity => 'north'; my @cmdwebp = (-resize => '630x420^', -extent => '630x420', -quality => 30); my @cmdjpeg = (-resize => '300x200^', -extent => '300x200'); 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;