【发布时间】:2019-12-23 20:47:24
【问题描述】:
请看黄色矩形,这与裁剪图像的矩形完全相同。 但是图像被剪裁得更小并向右移动。
图像只是一个元素,但想象一下其他几个元素都需要剪裁成黄色矩形的形状。
我知道我可以通过将<image> 元素(以及任何其他元素)包装在<g> 元素中并将clipPath 应用于此<g> 元素来解决此问题。
是否可以通过仅修改 clipPath 部分来解决此问题,而不触及 svg 结构的其余部分?
<defs>
<clipPath id="clipPath">
<path d="M150-750 L150,750 L-150,750 L-150,-750Z" transform="matrix(1,0,0,1,152.5,770.5)"></path>
</clipPath>
</defs>
<path fill="#ffff00" d="M150-750 L150,750 L-150,750 L-150,-750Z" transform="matrix(1,0,0,1,152.5,770.5)"></path>
<image x="-1632" y="-1224" width="3264" height="2448" preserveAspectRatio="none"
xlink:href="https://cdn.pixabay.com/photo/2017/07/25/01/22/cat-2536662_960_720.jpg"
transform="matrix(0.3529,0,0,0.3529,246.2554,998.5607)"
style="clip-path: url(#clipPath);"></image>
请查看jsfiddle here。
【问题讨论】: