0

请参考下面的 SVG。

<svg width="5cm" height="4cm" version="1.1"
     xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">

<rect x="0" y="0" width="150px" height="150px"/>

    <image xlink:href="firefox.jpg" x="0" y="0" height="150px" width="150px"/>
</svg>

输出如下所示。

在此处输入图像描述

如何使图像占据整个矩形?

谢谢,

湿婆

4

2 回答 2

1

适用于与矩形具有相同纵横比的图像:http: //jsfiddle.net/M24gX/

<svg width="8cm" height="8cm" version="1.1">
    <rect x="0" y="0" width="150px" height="150px" fill="red"/>
    <image xlink:href="http://lorempixel.com/150/150/sports/"
        x="0" y="0" height="150px" width="150px"/>
</svg>

不适用于与您的矩形具有不同纵横比的图像:http: //jsfiddle.net/5v9bd/

<svg width="8cm" height="8cm" version="1.1">
    <rect x="0" y="0" width="150px" height="150px" fill="red"/>
    <image xlink:href="http://lorempixel.com/300/150/sports/"
        x="0" y="0" height="150px" width="150px"/>
</svg>

如果您希望图像填充矩形的完整 150x150 像素,而不管其纵横比如何,您:

  • 分配 height="150px" 和 width="150px" (就像你已经做过的那样)
  • 分配 preserveAspectRatio="none"以允许图像具有非均匀缩放

示例:http: //jsfiddle.net/Fq96J/

<svg width="8cm" height="8cm" version="1.1">
    <rect x="0" y="0" width="150px" height="150px" fill="red"/>
    <image xlink:href="http://lorempixel.com/300/150/sports/"
        x="0" y="0" height="150px" width="150px" preserveAspectRatio="none"/>
</svg>

preserveAspectRatio 是你在使用 SVG 时绝对应该知道的属性,所以我建议阅读一些文档并尝试一下。很好的解释可以在

于 2013-03-08T09:19:41.217 回答
0

它在我的 JSFiddle上运行良好。你能在 JSFiddle 上重现它吗?

<svg width="8cm" height="8cm" version="1.1"
     xmlns="http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink">

<rect x="0" y="0" width="150px" height="150px" stroke="red" stroke-width="3"/>

    <image xlink:href="firefox.jpg" x="0" y="0" height="150px" width="150px"/>
</svg>
于 2013-03-07T09:21:06.047 回答