img test: Don't rely on using an empty ImageMagick coder name

This used to work, but has been interpreted as a literal part of
the filename since ImageMagick 6.9.8-3. In newer versions, there does
not seem to be any way to indicate that a filename containing ':' is
to be taken literally without first knowing the decoder to use.

Signed-off-by: Simon McVittie <smcv@debian.org>
master
Simon McVittie 2018-02-28 09:49:46 +00:00
parent 0e5c8ae806
commit f446e7ca5f
1 changed files with 14 additions and 1 deletions

15
t/img.t
View File

@ -105,8 +105,21 @@ ok(! system(@command, '--set-yaml', 'img_allowed_formats=[JPEG, PNG, svg, pdf]')
sub size($) {
my $filename = shift;
my $decoder;
if ($filename =~ m/\.png$/i) {
$decoder = 'png';
}
elsif ($filename =~ m/\.jpe?g$/i) {
$decoder = 'jpeg';
}
elsif ($filename =~ m/\.bmp$/i) {
$decoder = 'bmp';
}
else {
die "Unexpected extension in '$filename'";
}
my $im = Image::Magick->new();
my $r = $im->Read(":$filename");
my $r = $im->Read("$decoder:$filename");
return "no image: $r" if $r;
my $w = $im->Get("width");
my $h = $im->Get("height");