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;
38 next if $name =~ m/\./;
40 ($src) = grep {-e} glob qq<"$name"{,:*}.$ext> or next;
42 s/\\(.)/$1/g for @cmds;
45 if (@cmds and $cmds[0] =~ /^\d/) {
46 # crop shorthand from initial dimension argument
47 my @crop = split /\D/, shift @cmds;
48 unshift @cmds, -gravity => 'southeast', -chop => "$crop[2]%x$crop[3]%"
50 unshift @cmds, -chop => "$crop[0]%x$crop[1]%";
52 push @cmds, -gravity => 'north';
54 my $image = Shiar_Sheet::ImagePrep->new($src);
56 my ($ff, @ffcmds) = @{$_};
57 $image->convert("../$name.$ff", [@cmds, @ffcmds]);
61 warn "error creating image:\n";
62 warn ref $@ eq 'ARRAY' ? $@->[1] : $@ if $@;