#!/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.", $@]; $image->generate("data/word/32/$row->{id}.jpg", $meta->{convert}); } or warn "$row->{id}: @{$@}"; }