canvas标签createPattern属性用于创建指定方向的重复源。
用图像来填充画布
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>用图像来填充画布-HTML教程www.xuandaima.com</title> </head> <body> <p>图片应用:</p> <img src="/Template/Test/img/X.jpg" id="lamp"> <p>画布:</p> <button onclick="draw('repeat')">重复</button> <button onclick="draw('repeat-x')">重复-x</button> <button onclick="draw('repeat-y')">重复-y</button> <button onclick="draw('no-repeat')">不重复</button> <canvas id="testCanvas" width="290" height="160" style="border:1px solid #d3d3d3;"> 您的浏览器不支持 HTML5的canvas标签。</canvas> <script> function draw(direction){ var c=document.getElementById("testCanvas"); var ctx=c.getContext("2d"); ctx.clearRect(0,0,c.width,c.height); var img=document.getElementById("lamp") var pat=ctx.createPattern(img,direction); ctx.rect(0,0,220,128); ctx.fillStyle=pat; ctx.fill(); } </script> </body> </html>
说明字段 | 描述 |
---|---|
document.getElementById("testCanvas") | 返回文档id属性为"testCanvas"的对象 |
getContext("2d") | getContext() 返回画布上绘图的环境。getContext("2d") 返回绘制类型(2 维)的环境,未来可能会支持3维,但现在支持2维。 |
clearRect(0,0,c.width,c.height) | clearRect() 清空指定定矩形内的内容。要清除矩形X坐标0(第一个0)要清除矩形Y坐标0(第二个0),c是对象("testCanvas"对象),获取对象宽和高。 |
document.getElementById("lamp") | 返回文档id属性为"lamp"的对象,获取图片对象 |
ctx.createPattern(img,direction) | createPattern() 方法指定的方向内重复指定的元素。这里设置重复对象是图片,direction是重复模式(通过点击页面按钮来控制) |
ctx.fillStyle=pat | fillStyle 属性定义为图像重复矩形。 |
ctx.fill(); | 填充当前绘图(路径) |
注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。
createPattern属性创建指定方向的重复源,重复源可以是图片、视频,或者其他 <canvas> 元素。被重复的元素可用于绘制/填充矩形、圆形或线条等等。
context.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");
作为重复源的对象。可以是下列之一:
HTMLImageElement (<img>)
HTMLVideoElement (<video>)
HTMLCanvasElement (<canvas>)
CanvasRenderingContext2D
ImageBitmap
ImageData
Blob
参数 | 描述 | |
---|---|---|
repeat | 默认。该模式在水平和垂直方向重复。 | |
repeat-x | 该模式只在水平方向重复。 | |
repeat-y | 该模式只在垂直方向重复。 | |
no-repeat | 该模式只显示一次(不重复)。 |