From: Simon McVittie Date: Wed, 28 Feb 2018 09:51:13 +0000 (+0000) Subject: img: Explicitly detect format if needed X-Git-Tag: 3.20180228~6 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/54095ea655b63ab8f2cefba43622df683f89e4fe?hp=-c img: Explicitly detect format if needed An empty coder name used to detect the format implicitly, 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 --- 54095ea655b63ab8f2cefba43622df683f89e4fe diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm index 79cfba20f..b85824345 100644 --- a/IkiWiki/Plugin/img.pm +++ b/IkiWiki/Plugin/img.pm @@ -125,7 +125,14 @@ sub preprocess (@) { } else { # allow ImageMagick to auto-detect (potentially dangerous) - $format = ''; + my $im = Image::Magick->new(); + my $r = $im->Ping(file => $in); + if ($r) { + $format = lc $r; + } + else { + error sprintf(gettext("failed to determine format of %s"), $file); + } } error sprintf(gettext("%s image processing disabled in img_allowed_formats configuration"), $format ? $format : "\"$extension\"") unless allowed($format ? $format : "everything");