diff options
| author | Paul Buetow <paul@buetow.org> | 2022-04-06 09:33:01 +0100 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2022-04-06 09:33:01 +0100 |
| commit | d9bf1401a5eaebca7d304ae07897ebe0605aa10c (patch) | |
| tree | 8dc6e5189903fec94d45d6bebce21d6b6fa9adc3 | |
| parent | 3f9e6db036cecbd7dcc02dc5f0a85527c276d71e (diff) | |
add image class
| -rwxr-xr-x | slice.raku | 34 |
1 files changed, 29 insertions, 5 deletions
@@ -1,9 +1,30 @@ #!/usr/bin/env raku class Image { - has $.source; - has $.thumb; - has $.blur; + has Str $!source; + has Str $!thumb; + has Str $!blur; + + submethod BUILD(IO::Path :$source, Str :$outdir) { + $!source = $source.path; + $!thumb = "$outdir/thumbs/{$source.basename}"; + $!blur = "$outdir/blur/{$source.basename}"; + } + + multi method generate() { + self.generate(<-auto-orient -geometry 800>, dest => $!thumb) + unless $!thumb.IO.f; + + self.generate(<-flip -blur 0x8>, dest => $!blur) + unless $!blur.IO.f; + } + + multi method generate(Str :@args, Str :$dest) { + say @args; + @args.push: $!source; + @args.push: $dest; + say @args; + } } sub make-mrproper() { @@ -12,7 +33,6 @@ sub make-mrproper() { sub make-thumb(IO::Path $image, Str :$thumb-dir) { my $thumb = "$thumb-dir/{$image.basename}"; return if $thumb.IO.f; - } sub make-thumbs(:@images, Str :$outdir) { @@ -30,5 +50,9 @@ multi MAIN( my @images = dir($indir, test => { "$indir/$_".IO.f }); make-mrproper if $mrproper; mkdir $outdir unless $outdir.IO.d; - make-thumbs :@images, :$outdir; + #make-thumbs :@images, :$outdir; + @images.hyper(batch => 10).map({ + my \image = Image.new(source => $_, :$outdir); + image.generate; + }); } |
