我在通过 PHP Imagick 库将 SVG 转换为图像时遇到了麻烦。这是我的代码:
$svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg style="overflow: hidden; position: relative;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="754" version="1.1" height="565">
<defs></defs>
<image transform="matrix(1,0,0,1,0,0)" preserveAspectRatio="none" x="0" y="0" width="754" height="565" xlink:href="http://1439.demo.tekk3.com/wp-content/uploads/2012/10/capapix_Harley_Davidson_FLSTCI_-_Heritage_Classic.jpg"></image>
</svg>';
$im = new Imagick();
$im->readImageBlob($svg);
$im->setImageFormat("jpeg");
$im->writeimage($attached_file);
$im->clear();
$im->destroy();
结果是只有白色背景的图像。没有任何其他图像作为 SVG 显示。
如果我将文本标签放入 SVG 字符串中,则只有在白色背景中呈现的文本。图像仍然丢失。
我已经安装了 php5-imagick、libxml2、librsvg2-bin
我需要安装任何其他扩展以获得正确的结果吗?或者我的代码有什么问题吗?