2016-12-27 44 views
0

本质上,我使用的是一个API,它向另一个域上托管的我返回一个svg图像。将SVG图像转换为路径描述

我想用它作为path而不是image,这样我就可以操纵fillstroke。就目前而言,我无法这样做。

这是我的代码:

<svg height="100%" width="100%" position> 
    <rect x="0" y="0" width="100%" height="100%" fill="#288feb"></rect> 
    <g class="groupLayer"> 
      <image xlink:href="" ng-href="{{ctrl.iconObject[0].icon_url}}" x="0" y="-40" height="50px"/> 
      <text fill="#ffffff" x="0" y="0" font-size="48" font-family="Verdana">{{ctrl.text}}</text> 
    </g> 
</svg> 

所以不是<image>我想使用<path d=

像一个例子在线,我发现做:

<path d="M577.21,131.86l4.06,12.5a3.36,3.36,0,0,0,3.19,2.32h13.14a2.36,2.36,0,0,1,1.39,4.27l-10.63,7.72a3.36,3.36,0,0,0-1.22,3.75l4.06,12.5a2.36,2.36,0,0,1-3.63,2.64l-10.63-7.72a3.36,3.36,0,0,0-3.94,0l-10.63,7.72a2.36,2.36,0,0,1-3.63-2.64l4.06-12.5a3.36,3.36,0,0,0-1.22-3.75l-10.63-7.72a2.36,2.36,0,0,1,1.39-4.27h13.14a3.36,3.36,0,0,0,3.19-2.32l4.06-12.5A2.36,2.36,0,0,1,577.21,131.86Z" transform="translate(-549.97 -130.23)"></path> 

这是可能的JavaScript的?也许PHP?谢谢您的帮助。

+0

是的,它是可能的,但不是直接的。对于js,这一切都取决于外部服务器设置。如果它允许跨源请求,那么你可以获取svg文件(使用'fetch()'或XHR API),使用DOMParser解析它的文本内容,并在你自己的svg节点中包含你想要的元素。如果它不允许跨源请求,那么你将不得不从PHP获取数据,然后应用上面的相同,但从你自己的服务器的响应。 – Kaiido

+0

@Kaiido哦,辉煌!我不知道。谢谢! – Katie

+0

''引用了什么类型的文件?例如,它是另一个带有路径的SVG,还是位图图像? –

回答

0

我想通了。这是在年底相当简单,只需使用XMLHttpRequest

function reqListener() { 
    console.log(this.responseText); 
} 

var oReq = new XMLHttpRequest(); 
oReq.addEventListener("load", reqListener); 
oReq.open("GET", "http://www.example.org/example.svg"); 
oReq.send(); 

你就可以获取路径数据