word: webp images at double resolution
[sheet.git] / tools / mkwordthumb
1 #!/usr/bin/env perl
2 use 5.014;
3 use warnings;
4 use lib '.';
5 use Shiar_Sheet::ImagePrep;
6 use Shiar_Sheet::DB;
7 use JSON ();
8
9 our $VERSION = '1.01';
10
11 my $db = Shiar_Sheet::DB->connect;
12 my %filter = @ARGV ? (id => shift) : ();
13 my $query = $db->select(word => '*', \%filter);
14
15 while (my $row = $query->hash) {
16         my $image = Shiar_Sheet::ImagePrep->new("data/word/org/$row->{id}.jpg");
17         eval {
18                 my $meta = eval { JSON->new->decode($row->{image} // '{}') }
19                         or die ["Invalid JSON metadata in image column.", $@];
20                 my $basename = "data/word/en/$row->{id}";
21                 $image->convert("$basename.jpg",  $meta->{convert});
22                 $image->convert("$basename.webp", $meta->{convert}, '600x400');
23         } or warn "$row->{id}: @{$@}";
24 }