diff options
Diffstat (limited to 'IkiWiki/Plugin/img.pm')
-rw-r--r-- | IkiWiki/Plugin/img.pm | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm index 17a58ca..9f9c72c 100644 --- a/IkiWiki/Plugin/img.pm +++ b/IkiWiki/Plugin/img.pm @@ -65,15 +65,23 @@ sub preprocess (@) { my $dir = $params{page}; my $base = IkiWiki::basename($file); my $issvg = $base=~s/\.svg$/.png/i; + my $usegm = 1; + my $ispdf = $base=~s/\.pdf$/.png/i; my $pagenumber = exists($params{pagenumber}) ? int($params{pagenumber}) : 0; if ($pagenumber != 0) { $base = "p$pagenumber-$base"; } - eval q{use Image::Magick}; - error gettext("Image::Magick is not installed") if $@; - my $im = Image::Magick->new(); + eval q{use Graphics::Magick}; + if ($@) { + $usegm = 0; + eval q{use Image::Magick}; + error gettext("Image::Magick is not installed") if $@; + } + my $im = $usegm + ? Graphics::Magick->new($issvg ? (magick => "png") : ()) + : Image::Magick->new($issvg ? (magick => "png") : ()); my $imglink; my $imgdatalink; my $r = $im->Read("$srcfile\[$pagenumber]"); @@ -120,7 +128,7 @@ sub preprocess (@) { will_render($params{page}, $imglink); if (-e $outfile && (-M $srcfile >= -M $outfile)) { - $im = Image::Magick->new; + $im = $usegm ? Graphics::Magick->new : Image::Magick->new; $r = $im->Read($outfile); error sprintf(gettext("failed to read %s: %s"), $outfile, $r) if $r; } |