【问题标题】:How to convert a SVG to a PNG with ImageMagick 6.9.3-8 Q16 version?如何使用 ImageMagick 6.9.3-8 Q16 版本将 SVG 转换为 PNG?
【发布时间】:2018-08-28 01:24:57
【问题描述】:

我正在尝试使用 ImageMagick 6.9.3-8 Q16 版本转换 SVG 文件 (./svgtmp/designsvg.svg) 并保存为 Png 图像 (./svgtmp/designsvg.png)。但它不起作用。执行转换命令后 $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);

【问题讨论】:

  • 请包括您期望和观察到的行为,包括您可以收集的任何调试信息以及您的研究结果。
  • 欢迎来到 Stack Overflow!当问题陈述很简单时,很难提供解决方案"it doesn't work"。请edit您的问题更完整地描述您预期会发生什么以及这与实际结果有何不同。请参阅 How to Ask 以获取有关什么是好的解释的提示。
  • 错误被写入标准错误,并且不会出现在$arr(标准输出)中。尝试直接从 CLI 运行convert 命令,是否成功完成?
  • @emcconville 是的,它在 CLI 上完全成功,但在 php 中它不起作用。
  • $command= 'convert -size "'.$boundWidth.'"x"'.$boundHeight.'" xc:none -fill none -stroke "'.$vgroovCoreColor.'" -draw "'.$path.'" '.$thumbImage; exec($command ,$arr, $return_var);

标签: php svg imagemagick png


【解决方案1】:

我已经解决了使用传递路径,否则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);

如果您想将.svg 转换为.png,请使用ImageMagick 版本6.9.9 或升级版

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2012-04-08
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多