H T M L 5 − C a n v a s HTML5- Canvas HTML5−Canvas
什么是 canvas?
HTML5 <canvas>
元素用于图形的绘制,通过脚本 (通常是JavaScript
)来完成.
<canvas>
标签只是图形容器,您必须使用脚本来绘制图形。
创建一个画布(Canvas)
标签通常需要指定一个id属性
(脚本中经常引用), width 和 height
属性定义的画布的大小,使用 style
属性来添加边框:
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"></canvas>
实例解析
1.找到 <canvas>
元素:
var c=document.getElementById("myCanvas");
2.创建 context(ctx
) 对象:getContext(“2d”) 对象是内建的 HTML5 对象,拥有多种绘制
路径、矩形、圆形、字符以及添加图像的方法。
var ctx=c.getContext("2d");
3.利用ctx
进行绘制等动作
下面的两行代码绘制一个红色的矩形:
ctx.fillStyle="#FF0000";
ctx.fillRect(0,0,150,75);
fillStyle
属性可以是CSS颜色,渐变,或图案。fillStyle 默认设置是#000000(黑色)。
fillRect(x,y,width,height)
方法定义了矩形当前的填充方式。
画直线
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.moveTo(0,0);
ctx.lineTo(200,100);
ctx.stroke();
</script>
</body>
</html>
画圆
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();
</script>
</body>
</html>
把一幅图像(<img>
)放置到画布(<canvas>
)上, 使用以下方法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>Image to use:</p>
<img id="scream" src="https://dss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1634146723,1966520614&fm=11&gp=0.jpg" alt="The Scream" width="220" height="277"><p>Canvas:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
img.onload = function() {
ctx.drawImage(img,10,10);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p>Img:</p>
<img id="scream" src="封面.png" alt="The Scream" width="220" height="277"><p>Canvas:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;"></canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
img.onload = function() {
ctx.drawImage(img,10,10);
}
</script>
</body>
</html>
使用HTML5画布技术,你可以在浏览器客户端用JavaScript
绘制出各种美丽酷炫的图案,这些图案是不能直接保存的,本身也不是图片形式。幸运的是,画布(canvas
)对象有一个非常有用的方法:toDataURL()
。这个方法能把画布里的图案转变成base64
编码格式的png
,然后返回 Data URL
数据。