如何获得 svg 图像元素的自然宽度和高度?

Jam*_*mie 4 javascript svg d3.js

我正在尝试做一些相对简单的事情。我正在尝试在 D3 中进行以下工作:

  • 以自然的宽度和高度将图像绘制为 SVG 元素。
  • 能够单击此图像以使用 D3 绘制圆圈。

我被困在如何将图像绘制为 SVG 元素。到目前为止,我有:

content.append("image")
    .attr("xlink:href",this.store.image_url);
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能得到这个元素的自然宽度/高度?

Rob*_*son 5

你可以用一点javascript来做到这一点

var img = new Image();
img.onload = function(){

        img.naturalWidth and img.naturalHeight can be read off within here

};
img.src = this.store.image_url;
Run Code Online (Sandbox Code Playgroud)

  • 哦,整洁。现在如何在我的 svg 元素中使用此图像数据而不加载图像两次? (4认同)
  • 有点同样的问题。您的解决方案创建了一个 DOM Image 元素并从中读取宽度和高度 - 但是我如何将其与 svg 自然地集成? (2认同)