--- title: Canvas slug: Web/API/Canvas_API tags: - API - Canvas - JavaScript - WebGL translation_of: Web/API/Canvas_API ---
Canvas API 提供了一个通过JavaScript 和 HTML的{{HtmlElement("canvas")}}元素来绘制图形的方式。它可以用于动画、游戏画面、数据可视化、图片编辑以及实时视频处理等方面。
Canvas API主要聚焦于2D图形。而同样使用<canvas>
元素的 WebGL API 则用于绘制硬件加速的2D和3D图形。
这个简单的例子在画布绘制一个绿色的长方形。
<canvas id="canvas"></canvas>
{{domxref("Document.getElementById()")}} 方法获取HTML <canvas>
元素的引用。接着,{{domxref("HTMLCanvasElement.getContext()")}} 方法获取这个元素的context——图像稍后将在此被渲染。
由 {{domxref("CanvasRenderingContext2D")}} 接口完成实际的绘制。{{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle")}} 属性让长方形变成绿色。{{domxref("CanvasRenderingContext2D.fillRect()", "fillRect()")}} 方法将它的左上角放在(10, 10),把它的大小设置成宽150高100。.
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 150, 100);
{{ EmbedLiveSample('基础示例', 700, 180) }}
备注: 与 WebGLRenderingContext
有关的接口请参考 WebGL。
{{domxref("CanvasCaptureMediaStream")}} 也与之相关。
Canvas API是非常强大的,但不总是很容易使用。以下列出的库能够使创建基于canvas的项目更快和更简单。
备注: 与WebGL有关的2D和3D的库请参考 WebGL。
标准 | 状态 | 备注 |
---|---|---|
{{SpecName('HTML WHATWG', '#2dcontext', 'the 2D rendering context')}} | {{Spec2('HTML WHATWG')}} |
Mozilla 程序从 Gecko 1.8 (Firefox 1.5) 开始支持 <canvas>
。它首先是由 Apple 引入的,用于 OS X Dashboard 和 Safari。Internet Explorer 从IE9开始支持<canvas>
,更旧版本的IE中,页面可以通过引入 Google 的 Explorer Canvas 项目中的脚本来获得<canvas>
支持。Google Chrome和Opera 9+ 也支持 <canvas>
。