我正在尝试将SVG文件转换为PNG或JPG,以便在浏览器的 <div>
中显示它,只需按一下按钮即可将其加载 . SVG没有格式错误,因为它在浏览器上正确显示 . 我用:
ob_start();
require("svgoutput.php");
$svg = ob_get_clean();
$image = new Imagick();
$svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'.$svg;
$image->readImageBlob($svg);
$image->setImageFormat("png");
header("Content-Type: image/png");
echo $image->getImageBlob();
如果我检索 $svg
变量,它会正确地开始和结束每个SVG标记 .
但它不是给我一张图片,而是回报我:
而且,即使它太小,内容也太少了 .
我究竟做错了什么?
编辑:如果我强制png输出(在base64编码并输出为 img
标签),它返回我:
1 回答
我想到了 .
我已经在文档的另一部分调用了
header
,因此不再适用,所以我决定将其编码为base64并将其放在img
标记中,如下所示:输出的图像是空白的,因为在svg的末尾有一个
<br>
标签,我忘了删除它 . 现在它有效 .这是完整的代码(已验证):