set the file type parameter after reading the image

imagemagick, when reading an image, sets its magick parameter to
indicate the file type, overriding the explicitly set file type for
output if it is set at creation.

as a result, previously (with graphicsmagick-libmagick-dev-compat
1.3.18-1 providing Image::Magick), svg output files were not png,
neither svg, but mvg (imagemagick vector graphics).
master
chrysn 2014-04-07 11:15:51 +02:00
parent 2924888181
commit 71b9ad33e0
1 changed files with 2 additions and 1 deletions

View File

@ -68,7 +68,7 @@ sub preprocess (@) {
eval q{use Image::Magick};
error gettext("Image::Magick is not installed") if $@;
my $im = Image::Magick->new($issvg ? (magick => "png") : ());
my $im = Image::Magick->new();
my $imglink;
my $r = $im->Read($srcfile);
error sprintf(gettext("failed to read %s: %s"), $file, $r) if $r;
@ -124,6 +124,7 @@ sub preprocess (@) {
# don't actually write resized file in preview mode;
# rely on width and height settings
if (! $params{preview}) {
$im->set($issvg ? (magick => 'png') : ());
my @blob = $im->ImageToBlob();
writefile($imglink, $config{destdir}, $blob[0], 1);
}