2025Canvas

329 阅读2分钟

什么是Canvas?

  • HTML5的canvas元素使用JavaScript在网页上绘制图像
  • canvas指的是画布,类似于windows的画图工具;拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

通过JavaScript来绘制

canvas元素本身是没有绘图能力的。所有的绘制工作必须在JavaScript中完成

<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75);
</script>

JavaScript 使用 id 来寻找 canvas 元素:

var c=document.getElementById("myCanvas");

然后,创建 context 对象:

var cxt=c.getContext("2d"); 

getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

下面的两行代码绘制一个红色的矩形:

cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,150,75); 

fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。

理解坐标

上面的 fillRect 方法拥有参数 (0,0,150,75)。

意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。

常用方法

获取上下文

  • getContext('2d'):获取2D绘图上下文,用于绘制二维图形。

绘制矩形

  • fillRect(x,y,width,height):绘制填充矩形
  • strokeReact(x,y,width,height):绘制矩形边框
  • clearRect(x,y,width,height):清除指定矩形区域的内容

路径操作

  • beginPath():开始一条新路径
  • closePath():关闭当前路径
  • moveTo(x,y):将画笔移动到指定位置
  • lineTo(x,y):从当前位置绘制直线到指定位置
  • arc(x, y, radius, startAngle, endAngle, anticlockwise):绘制弧线或圆

样式和颜色

  • fillStyle:设置填充颜色或样式
  • strokeStyle:设置描边颜色或样式

变换

  • translate(x,y):移动源点位置
  • rotate(angle):旋转坐标系
  • scale(x,y):缩放坐标系。

绘制文本

  • fillText(text,x,y):绘制填充文本
  • strokeText(text,x,y):绘制描边文本

图像处理

  • drawImage(image, dx, dy): 在指定位置绘制图像。
  • getImageData(sx, sy, sw, sh): 获取图像数据。
  • putImageData(imagedata, dx, dy): 将图像数据绘制到 canvas。