【发布时间】:2012-06-20 21:44:31
【问题描述】:
我对 raphaeljs 导出插件 (https://github.com/ElbertF/Raphael.Export) 有疑问。
在路径元素中,我使用属性 fill 并作为来源,我提供了一个图像 url 来填充。但是当我将它导出到 SVG 时,我看到了一个路径元素定义,但是当我将它导出到 PNG 时,我再也看不到了。
所以在我的应用程序中,我将attr 添加到path 元素,如下所示:
paper.path("M 195 10 L 300 L 195 z").attr({'stroke-width': 0,'fill': 'url(images/alfen/02/murek.png)'});
然后我用paper.toSVG() 导出它
在我的 SVG 中我找到了一条路径:
<path transform="matrix(1,0,0,1,0,0)" fill="url(images/alfen/02/murek.png)" stroke="#000" d="M203,183.94389438943895L948,183.94389438943895L948,195L203,195Z" stroke-width="0"></path>
但是当我将其转换为 PNG 时:
<?php
$json = $_POST['json'];
$output = str_replace('\"','"',$json);
$filenameSVG = 'test';
file_put_contents("$filenameSVG.svg", $output);
$konwert = "convert $filenameSVG.svg $filenameSVG.jpg";
system($konwert);
我找不到符合我背景的这条道路。有人可以帮忙吗?
【问题讨论】:
-
快速猜测:要么提供完整的 url(带域名),要么如果失败,提供图像的本地路径(在
fill属性中)?convert不知道您的网站、域或任何相关信息。 -
在我的 svg 中,我也有
<image transform="matrix(1,0,0,1,0,0)" preserveAspectRatio="none" x="0" y="0" width="108" height="48" xlink:href="images/alfen/alfenlogo.png"></image>并且已正确转换 -
是的,而且那里不是
url(开头的,可以理解为本地路径。但是为什么要争论呢?测试告诉你! :) -
你说得对,我应该简单地尝试一下。但是我已经检查过了,但仍然没有。在我的网页上一切正常。在我的 svg 上,我有完整的 url (http://....) 我不知道它是否重要,但在我的代码检查器上,这条路径我有
<path style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); " fill="url(#1AA92631-6253-4B49-91D8-698D42237F32)" stroke="#000000" d="M259,175.65181518151815L948,175.65181518151815L948,195L259,195Z" stroke-width="0"></path>任何想法? -
您可以尝试使用本地文件路径,但如果这不起作用并且没有其他人回答:我现在走了,但是如果您将完整的 svg xml 粘贴到某个地方,我会看看我明天能不能试一试。
标签: php javascript svg raphael