Baseline Widely available
Canvas 2D API ç CanvasRenderingContext2D.createPattern()
æ¹æ³ç¨äºä½¿ç¨æå®çå¾åæéå¤åå»ºå¾æ¡ãæ¤æ¹æ³è¿åä¸ä¸ª CanvasPattern
对象ã
è¿ä¸ªæ¹æ³å¹¶ä¸ç´æ¥å¨ç»å¸ä¸ç»å¶ä»»ä½å
容ã宿å建ç徿¡å¿
é¡»èµå¼ç» CanvasRenderingContext2D.fillStyle
æ CanvasRenderingContext2D.strokeStyle
ï¼ä¹åæä¼åºç¨äºæ¥ä¸æ¥çç»å¶æä½ã
createPattern(image, repetition)
åæ°
image
ç¨ä½å¾æ¡å¾åçå¾åãå¯ä»¥æ¯ä¸åä¹ä¸ï¼
HTMLImageElement
ï¼<img>
ï¼SVGImageElement
ï¼<image>
ï¼HTMLVideoElement
ï¼<video>
ï¼éè¿ä½¿ç¨è§é¢æè·ï¼HTMLCanvasElement
ï¼<canvas>
ï¼ImageBitmap
OffscreenCanvas
VideoFrame
repetition
ä¸ä¸ªæç¤ºå¦ä½éå¤å¾æ¡å¾åçå符串ãå¯è½çå¼å æ¬ï¼
"repeat"
ï¼ä¸¤ä¸ªæ¹åé½éå¤ï¼"repeat-x"
ï¼ä»
æ°´å¹³æ¹åéå¤ï¼"repeat-y"
ï¼ä»
åç´æ¹åéå¤ï¼"no-repeat"
ï¼ä¸¤ä¸ªæ¹åé½ä¸éå¤ï¼null
å¼ä¸ç©ºå符串ï¼""
ï¼çå¤çæ¹å¼ç¸åï¼ä¸¤è
齿¯ "repeat"
çåä¹è¯ã
CanvasPattern
æè¿°å¾æ¡çä¸éæå¯¹è±¡
妿 image
没æå®å
¨å è½½ï¼å³ HTMLImageElement.complete
æ¯ false
ï¼ï¼åè¿å null
ã
è¿ä¸ªä¾åä½¿ç¨ createPattern()
æ¹æ³æ¥å建ä¸ä¸ªå¸¦æé夿ºå¾åç CanvasPattern
ãåå»ºå®æåï¼å°è¿ä¸ªå¾æ¡èµå¼ç»ç»å¸ä¸ä¸æçå¡«å
æ ·å¼ï¼å¹¶åºç¨äºä¸ä¸ªç©å½¢ã
åå§å¾åå¦ä¸æç¤ºï¼
HTML<canvas id="canvas" width="300" height="300"></canvas>
JavaScript
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
const img = new Image();
img.src = "canvas_createpattern.png";
// 请确ä¿å¨å¾åå è½½å®æåå使ç¨
img.onload = () => {
const pattern = ctx.createPattern(img, "repeat");
ctx.fillStyle = pattern;
ctx.fillRect(0, 0, 300, 300);
};
ä»ç»å¸åå»ºå¾æ¡
å¨è¿ä¸ªä¾åä¸ï¼æä»¬ä»ä¸ä¸ªç¦»å±ç»å¸çå 容å建äºä¸ä¸ªå¾æ¡ãç¶åå°è¿ä¸ªå¾æ¡åºç¨å°ä¸»ç»å¸çå¡«å æ ·å¼ä¸ï¼å¹¶ç¨è¯¥å¾æ¡å¡«å 主ç»å¸ã
JavaScript// å建ä¸ä¸ªç¦»å±ç»å¸ä½ä¸ºå¾æ¡çæº
const patternCanvas = document.createElement("canvas");
const patternContext = patternCanvas.getContext("2d");
// è®¾ç½®å¾æ¡ç宽度åé«åº¦ä¸º 50
patternCanvas.width = 50;
patternCanvas.height = 50;
// è®¾ç½®å¾æ¡çèæ¯é¢è²å¹¶ç»å¶ä¸ä¸ªåå¼§
patternContext.fillStyle = "#fec";
patternContext.fillRect(0, 0, patternCanvas.width, patternCanvas.height);
patternContext.arc(0, 0, 50, 0, 0.5 * Math.PI);
patternContext.stroke();
// å建æä»¬ç主ç»å¸å¹¶ç¨å¾æ¡å¡«å
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
const pattern = ctx.createPattern(patternCanvas, "repeat");
ctx.fillStyle = pattern;
ctx.fillRect(0, 0, canvas.width, canvas.height);
// å°ä¸»ç»å¸æ·»å å°ç½é¡µä¸
document.body.appendChild(canvas);
ç»æ è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4