【发布时间】:2021-10-25 04:43:22
【问题描述】:
<svg viewBox="0 0 600 1200" xmlns="http://www.w3.org/2000/svg">
<image x="0" y="0" height="200" width ="100" xlink:href="https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/IKB_191.jpg/1200px-IKB_191.jpg" />
<ellipse cx="50" cy="100" rx="50" ry="62" fill="grey" />
</svg>
在上面的示例中,我们希望能够看到椭圆内部的图像(蓝色框),并且椭圆的灰色仅显示在角落/外部。你可以把它想象成一个人的肖像(图像),有一个边框(椭圆的倒数)。
我们有一个带有图像和椭圆的 SVG。 SVG 图像没有很多属性(没有边框半径),因此我们考虑使用“反向填充”椭圆,其中填充颜色位于椭圆的 外部 而不是内部.不幸的是,这在我们的示例中没有发生。 svg:ellipse 可以吗?还是有其他方法?我们需要 SVG 中的图像,我们的目标是在图像前面创建具有某种填充颜色的弯曲“边框”(认为边框半径为 50%)。
编辑:我可以创建一个 svg:path,或者可以在图像上放置某种剪辑?
Edit2:这条路径很近,但不完全在那里,因为路径创建的椭圆内不应该有任何蓝色......
<svg height="200">
<path
stroke="black" fill="blue" stroke-width="2" fill-opacity="0.5"
d="
M0 80
a40 80 0 0 0 80 0
a40 80 1 0 0 -80 0
l0 80
l80 0
l0 -160
l-80 0
"
/>
</svg>
【问题讨论】: