在HTML5畫布中,您可以將圖像作爲一個整體進行繪製,或者僅繪製其中的一部分,或僅將其中的一部分繪製到任意矩形(可能會縮放)。像在HTML Canvas或CSS中一樣定義SVG的源矩形<image>
下面是三個的例子:
這裏是用來繪製這三個例子的代碼:
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的一部分,就像在第一次剪裁中一樣?
可以使用剪切路徑剪切圖像的一部分,但是您(看起來)不能使用較大圖像的剪切路徑,同時將元素的寬度和高度定義爲很小。
下面是與上面的代碼加樣本SVG元素的小提琴:
謝謝扎克!這對我的情況不起作用(我也需要對它們進行轉換),但它是一個非常優雅的解決方案,可能是大多數人在Stackoverflow上尋找此Q所需要的,所以我將其標記爲接受。 –
@SimonSarris我用一些其他選項更新了我的答案,您可以使用其他選項 –
我最終得到的廣義解決方案涉及到clipPath + 3變換,您可以在此處看到一個示例:http:// jsfiddle。 net/rn7Ky/ –