SVG:拉伸图像

Ale*_*dar 29 svg image

我正在玩SVG教程,我只是加载了这样的图像:

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg style="stroke-linejoin:round; stroke:black; stroke-width:0.5pt; text-anchor:middle; fill:none" xmlns="http://www.w3.org/2000/svg" font-family="Helvetica, Arial, FreeSans, Sans, sans, sans-serif" height="400px" width="400px" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 250 250">
    <rect y="0" x="0" height="250" width="250" stroke="black"  stroke-width="1" fill="blue" />
    <image y="0" x="0" height="250" width="250" xlink:href="http://www.blueprintmodel.co.uk/images/DSCF1438.jpg" />
</svg>
Run Code Online (Sandbox Code Playgroud)

即使高度和宽度相同,我在viewBox的中心,"rect"上方获取图像.我的问题是:

  • 如何将图像拉伸为rect的大小?
  • 为什么"图像"标签中的"高度"不起作用?
  • 我可以使用"拉伸"或"调整大小"这样的转换吗?(我找不到它们)

Rob*_*son 67

在svg元素上设置preserveAspectRatio ="none".

  • `preserveAspectRatio` 也可以作为属性应用于 `&lt;image&gt;` 元素,而不是全局应用于 `&lt;svg&gt;` https://developer.mozilla.org/en-US/docs/Web/SVG/Element/图像 (4认同)
  • 请注意,除非存在“viewBox”来定义图像的宽高比,否则“preserveAspectRatio”不起作用。 (3认同)
  • 请注意,这可能不适用于某些(和许多移动)浏览器.@Aleksandar (2认同)

mii*_*iir 5

也可以使用纯 CSS 缩放和更改 SVG 的纵横比:

transform: scale(x, y);

  • 注意:我知道这个答案没有直接回答原始问题。我需要在忽略纵横比的同时调整 SVG 的大小,这让我进入了这个问答,但我发现 CSS 方法更适合我的情况,所以我在这里分享它给其他人可能会发现它有用。 (2认同)