gpt4 book ai didi

image - SVG 图像的自动宽度和高度

转载 作者:行者123 更新时间:2023-12-02 07:58:37 24 4
gpt4 key购买 nike

我是 SVG 的新手,如果这是一个菜鸟问题,我很抱歉。我试图弄清楚如何让图像以引用图像的完整宽度和高度显示。我正在使用 D3.js 构建图表,并且希望在角落中显示 Logo 。问题是图像 href 将使用 javascript 设置,因此被引用的图像永远不是固定的宽度或高度。我想要的是以完整宽度和高度显示的图像,而不是放大或缩小。我希望能够根据图像的内容自动设置图像的宽度和高度,例如将 widthheight 属性设置为 auto 。然而,这只会导致图像不显示。

d3.select("body")
.append("svg")
.attr('id','mySVG')
.attr({
"width": "100%",
"height": "100%"
})
.attr("viewBox", "0 0 " + width + " " + height )
.attr("preserveAspectRatio", "none");

d3.select('#mySVG')
.append('image')
.attr('image-rendering','optimizeQuality')
.attr('height','auto') <--- This does not work
.attr('width','auto') <--- This does not work
.attr('xlink:href', logoUrl)
.attr('x','0')
.attr('y','0');

如何指定 SVG 图像宽度高度必须根据引用的图像大小动态确定?

最佳答案

我不认为“auto”是 svg 图像元素的“length”属性的有效值。看看规范here 。您可能想使用“100%”

可以加载图像,然后检查加载时的宽度和高度。

JSFiddle:http://jsfiddle.net/WQBPC/4/

var logoUrl = 'http://placehold.it/100x50&text=Logo';

//SVG Setup stuff
var svg = d3.select("body").append("svg")
.attr('id','mySVG')
.attr({
"width": '100%',
"height": '100%'
})

var svg_img= svg.append('image')
.attr('image-rendering','optimizeQuality')
.attr('x','0')
.attr('y','0');

//Load image and get size.
var img = new Image();
img.src = logoUrl;
img.onload = function() {
var width = this.width;
var height = this.height;

svg_img .attr('height', height)
.attr('width',width)
.attr('xlink:href', logoUrl)

}

关于image - SVG 图像的自动宽度和高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15989680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com