javascript - 动态图像加载到 svg

标签 javascript svg

情况:有 svg 格式的图像:

<filter id="svg-filter-blur">
    <feGaussianBlur stdDeviation="10,10" />
</filter>

<image id='view-photo-svg' x="0%" y="0%" width="100%" height="100%" 
filter="url(#svg-filter-blur)"/>

尝试这样做:

var photo = new Image();
    photo.src = 'photos/h5.jpg';

    photo.addEventListener('load', function(){
        render();
    });

以及在render()中:

var photoDOM = document.getElementById('view-photo-svg');
    photoDOM.setAttribute('src', "url('" + photo.src + "')"); 

    photoDOM.setAttribute('xlink:href', photo.src);

不起作用。 有什么建议吗?

完美场景:

  • 有权访问图像参数/事件(例如onload)

  • 可以对其应用滤镜/剪辑

最佳答案

非空命名空间中的属性必须通过 setAttributeNS 设置所以你需要这个...

photoDOM.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', photo.src);

关于javascript - 动态图像加载到 svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24762228/

相关文章:

javascript - 计算 45 度捕捉的坐标

javascript - 从 svg 或通过 canvas 的 svg 输出具有正确文件名的 300 个 png 图像?

html - 如何在输入中添加 SVG 图标?

javascript - 从事件发射器回调中返回一个值

javascript - HTML 元素的 DOM 是否有 'hidden indexes' ?

javascript - 在 Angular 8 中设置动态路由

javascript - 为什么使用切片的克隆列表会影响原始列表

javascript - jQuery 中的颜色/背景颜色更改动画

css - 更改伪元素中数据 URI SVG 路径的填充颜色

javascript - Highcharts 气泡图,自定义标记