私は、キャンバスの背景に私の四角形を設定したいと思います。 これまで私はこれをしました。 キャンバスの長方形の背景画像
var img = new Image()
img.src = //Source of an image.
var newPattern = ctx.createPattern(img, "no-repeat");
ctx.fillStyle = newPattern;
これは機能しますが、問題はキャンバスに画像を適用し、矩形には適用しないということです。
矩形の位置を変更するたびに、画像は同じ位置にとどまります。
誰でもこの問題を解決する方法を提案できるので、画像は長方形にアタッチされます。
をRECTするために更新がはい 'createPattern'は、宛先として全体のキャンバスを使用し、何の' transform'が( 'CanvasPattern.setTransform'メソッドを介して)提供されていない場合、それはにデフォルト設定されます左上隅。しかし、あなたは 'no-repeat'を望んでいるので、単に' drawImage'を使うのはなぜですか? (PS:あなたの画像が何かをする前にロードされているのを忘れないでください)。 – Kaiido
あなたの答えをありがとう。しかし、この場合、drawImageは正しく動作しません。矩形やその他の形状(** circle **、** triangle **、** square **など)のみに画像を表示したい矩形はマスクであるが画像はそれに添付されるので、 'cratePattern'はマスクとして機能しますが、画像はそれに添付されません。 – Zhirayr
あなたが望むものは['ctx.clip()'](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/clip)ですhttps://jsfiddle.net/6cmquz58/ – Kaiido