#!/usr/bin/env perl use 5.014; use warnings; use lib '.'; use Shiar_Sheet::ImagePrep; use Shiar_Sheet::DB; use JSON (); our $VERSION = '1.01'; my $db = Shiar_Sheet::DB->connect; my %filter = @ARGV ? (id => shift) : (); my $query = $db->select(word => '*', \%filter); while (my $row = $query->hash) { my $image = Shiar_Sheet::ImagePrep->new("data/word/org/$row->{id}.jpg"); eval { my $meta = eval { JSON->new->decode($row->{image} // '{}') } or die ["Invalid JSON metadata in image column.", $@]; my $basename = "data/word/en/$row->{id}"; $image->convert("$basename.jpg", $meta->{convert}); $image->convert("$basename.webp", $meta->{convert}, '600x400'); } or warn "$row->{id}: @{$@}"; }