#!/usr/bin/perl -wT use strict; use POSIX; $ENV{PATH} = '/usr/bin'; my $minW = 320; my $maxW = 2000; my @densities = (0.5, 1.0, 2.0); my $maxOver = 1.3; my $images = []; my $width = $maxW * $densities[$#densities]; while ($width > $minW * $densities[0] * $maxOver) { push(@$images, POSIX::ceil($width)); $width /= $maxOver; } foreach my $w (@$images) { system("convert original.jpeg -resize $w $w.jpeg") unless -f "$w.jpeg"; foreach my $d (reverse @densities) { my $nw = int($w / $d); next if $nw > $maxW; next if $nw < $minW; print "$w.jpeg ${nw}w ${d}x,\n"; } }