在 HTML5 Canvas 中,您可以将图像作为一个整体进行绘制,或者仅绘制其中的一部分,或者仅将其中的一部分绘制到任意矩形(可能会对其进行缩放)。
这是所有三个的示例:
这是用于绘制这三个示例的代码:
ctx.drawImage(img, 0, 0);
ctx.drawImage(img,
// source rect
50, 50, 70, 70,
// destination rect
0, 200, 70, 70
);
ctx.drawImage(img,
// source rect
50, 50, 70, 70,
// destination rect
0, 270, 30, 30
);
这在 CSS 中也相对容易做到。
我的问题是,对于给定的图像,如何使用 SVG<image>
元素实现相同的效果?
例如,我如何制作一个占用 50x50 像素的图像,显示引用的 href 的一部分,就像在第一次裁剪中一样?
<image>
可以使用剪切路径来裁剪图像的一部分,但是(似乎)在将元素的宽度和高度定义为较小的同时,您(似乎)不能使用较大图像的剪切路径。
这是上面代码加上一个示例 SVG 元素的小提琴: