【发布时间】:2011-04-07 13:24:41
【问题描述】:
我需要 Inkscape 和 Imagick 的相同输出。
这是从 Inkscape 导出的预期结果。
但是,下面的 PHP 代码输出以下错误结果。
PHP 代码:
<?php
$im = new Imagick();
$im->setResolution(400,400);
$im->setBackgroundColor(new ImagickPixel('transparent'));
$im->readImageBlob(str_replace(array("color1", "color2"), array("yellow", "blue"), file_get_contents("img.svg")));
$im->setImageFormat("png");
header("Content-type: image/png");
echo $im;
?>
SVG 代码:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="400" height="400">
<rect width="100%" height="100%" fill="green" />
<path d="M250 150 L150 350 L350 350 Z" opacity="0.9" fill="color1" />
<path d="M150 50 L50 250 L250 250 Z" opacity="0.9" fill="color2" />
</svg>
【问题讨论】:
-
为什么需要使用 Imagick?使用真正的 SVG 程序更容易做到。
-
我在 Windows 7 64bit 2.3.0 上尝试过同样的问题。在 3.1 的 linux 上,它可以正常工作。