Ich entwickle gerade eine 2D-Grafikbibliothek in JavaScript, und jetzt bleibe ich bei der Umwandlung von Hintergrundtexturen.Wie transformiere ich das Bildmuster in JavaScript-Canvas fillStyle?
Ich möchte die Hintergrundtextur (Eigenschaft fillStyle
) eines Leinwandkontextes (CanvasRenderingContext2D
) zu einem Bild (CanvasPattern
) setzen. Es ist einfach, dem fillStyle
ein Bild zuzuweisen. Aber das einzige Problem ist, dass das Bild nicht wirklich übersetzt, skaliert oder verzerrt werden kann.
Ich habe nachgeschlagen MDN, es heißt, es gibt einen Prototyp namens setTransform()
. Mit dieser API können Sie das Bild durch eine SVGMatrix
transformieren, die ein wenig nervig scheint. Nicht nur Sie müssten ein redundantes <svg>
-Element erstellen, es ist auch eine experimentelle API, und es kann nicht in Google Chrome funktionieren.
Es ist einfach unmöglich, auf eine normale Weise zu lösen. Gibt es irgendwelche 'hacky' Möglichkeiten, dies zu tun?
Sie können die Füllung unabhängig von dem Pfad transformieren, indem die separat mit Transformation, erstellen Sie den Pfad zuerst, dann, nachdem der Pfad festgelegt erstellt wird die zu transformieren, was Sie für das Muster wollen und dann füllen .. zB 'ctx.beginPath(); ctx.rect (0, 0, ctx.canvas.width, ctx.canvas.height); ctx, rotiere (1); ctx.fillStyle = Muster; ctx.fill(); ' – Blindman67