【问题标题】:Add a background image to an SVG将背景图像添加到 SVG
【发布时间】:2017-01-14 15:04:58
【问题描述】:

我正在使用 Snap.svg 并尝试将背景图像添加到多边形。

多边形如下:

<svg id="test" height="600" width="600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="" class=""></svg>

var polygon = s.polyline(200, 286, 250, 200, 350, 200, 400, 286, 350, 373, 250, 373);

我尝试了很多不同的方法来制作背景图片,但都没有效果:

polygon.attr(
{
    fill: 'url(http://csshexagon.com/img/meow.jpg)'
});


polygon.attr('xlink:href', 'url(http://csshexagon.com/img/meow.jpg)');

有什么想法吗?谢谢。

【问题讨论】:

    标签: javascript jquery css svg snap.svg


    【解决方案1】:

    您需要做一些事情。如果使用 Snap,请确保您使用的是最新版本,以便 'toPattern()' 有效。

    然后我们可以绘制图像,将其转换为图案,然后用图案填充多边形。

    var polygon = paper.polyline(200, 286, 250, 200, 350, 200, 400, 286, 350, 373, 250, 373);
    var img = paper.image('https://i.imgur.com/LQIsf.jpg', 150, 200, 250, 250)
    var p = img.toPattern( 0,0,400,400 );
    polygon.attr({ fill: p })
    

    jsfiddle

    【讨论】:

    • 这是我认为最好的解决方案。它模拟真实背景而无需缩小比例
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 2018-06-26
    • 2015-05-28
    • 2015-11-06
    • 2012-04-09
    • 2011-06-01
    • 2013-12-16
    相关资源
    最近更新 更多