简体   繁体   English

如何使用ImageMagick 6.9.3-8 Q16版本将SVG转换为PNG?

[英]How to convert a SVG to a PNG with ImageMagick 6.9.3-8 Q16 version?

I am trying to convert SVG file (./svgtmp/designsvg.svg) and save as a Png Image (./svgtmp/designsvg.png) with ImageMagick 6.9.3-8 Q16 version. 我正在尝试将SVG文件(./svgtmp/designsvg.svg)转换为ImageMagick 6.9.3-8 Q16版本,并将其另存为Png图像(./svgtmp/designsvg.png)。 But its not work. 但它不起作用。 after execution convert command $arr returns blank array and $return_var returns 1 执行转换命令后,$ arr返回空数组,$ return_var返回1

$svg ='<svg xmlns="http://www.w3.org/2000/svg" id="vgroovFrame" width="95" height="95"><polyline id="topLeft" points="0,5 10,5 10,10 5,10 5,0 90,0 90,10 85,10 85,5 95,5 95,90 85,90 85,85 90,85 90,95 5,95 5,85 10,85 10,90 0,90 0,5 " style="fill:#044B9466;stroke:red;stroke-width:1"/></svg>';


    file_put_contents('./svgtmp/designsvg.svg', $svg);


$thumbImg = './svgtmp/designsvg.svg';
$final_img = './svgtmp/designsvg1.png';

$command= "convert -density 500 -resize 128x128 ".$thumbImg."  ".$final_img;
exec("convert -version" ,$arr, $return_var);

I have solved using passing path otherwise ImageMagick 6.9.3-8 Q16 version not allowed to read .SVG file 我已经解决了使用传递路径的问题,否则ImageMagick 6.9.3-8 Q16版本不允许读取.SVG文件

$thumbImage = "./actions/tmpsvg/vrgroov_".$_GET['orderId'].".png";
$command= 'convert -size "'.$boundWidth.'"x"'.$boundHeight.'" xc:none -fill none -stroke "'.$vgroovCoreColor.'" -draw "'.$path.'" '.$thumbImage;
exec($command ,$arr, $return_var);

If you want to convert .svg to .png then use ImageMagick version 6.9.9 or upgraded 如果要将.svg转换为.png使用ImageMagick版本6.9.9或升级

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM