4 use lib $0 =~ s{[^/]+$}{..}r; # project root
5 use Shiar_Sheet::ImagePrep '1.03';
11 if (@ARGV and $ARGV[0] =~ /^-/) {
13 Getopt::Long->import(qw( 2.33 :config gnu_getopt ));
27 push @ffs, my $ff = [$_];
29 push @{$ff}, -quality => $1 if $r =~ s/@(\d+)//;
30 push @{$ff}, -resize => "$r^", -extent => $r;
36 my ($name, @cmds) = split /:(?<!\\:)/, $src =~ s/\.(\w+)\z//r;
39 next if $name =~ m/\./;
41 ($src) = grep {-e} glob qq<"$name"{,:*}.$ext> or next;
43 s/\\(.)/$1/g for @cmds;
46 if (@cmds and $cmds[0] =~ /^\d/) {
47 # crop shorthand from initial dimension argument
48 my @crop = split /\D/, shift @cmds;
49 unshift @cmds, -gravity => 'southeast', -chop => "$crop[2]%x$crop[3]%"
51 unshift @cmds, -chop => "$crop[0]%x$crop[1]%";
53 push @cmds, -gravity => 'north';
55 my $image = Shiar_Sheet::ImagePrep->new($src);
57 my ($ff, @ffcmds) = @{$_};
59 $image->convert("../$name.$ff", [@cmds, @ffcmds]);
64 warn ref $@ eq 'ARRAY' ? $@->[1] : $@ if $@;