[关闭]
@Dale-Lin 2018-04-22T21:51:21.000000Z 字数 2263 阅读 926

JS Canvas

JavaScript


创建一个html canvas 元素(画布):

  1. <canvas id="drawing" width="200px" height="200px">A drawing of sth.</canvas>

getContext()

要在画布上绘图,需要取得上下文:

  1. var drawing = document.getElementById('drawing');
  2. //用 getContext('2d') 获取2d上下图
  3. var context = drawing.getContext('2d');

该方法也是判断是否支持 canvas 元素的标准:

  1. var hasCanvas = document.createElement('canvas').getContext? true : false;

toDataUrl()

获取 canvas 上的图像(路径),参数为图像的格式,image/png(默认) 或 image/jpeg,第二个可为品质:

  1. //获取路径
  2. var imgUrl1 = drawing1.toDataUrl('image/png');
  3. var imgUrl2 = drawing2.toDataUrl('image/jpeg', 0.8);
  4. //显示图像
  5. var image = document.createElement('img');
  6. image.src = imgUrl1;
  7. document.body.appendChild(image);

2D上下文

填充和描边

原点位于左上角,大多2D上下文操作分为 填充描边 ,取决于两个属性:fillStylestrokeStyle。两个属性的值可以为字符串、渐变对象或模式对象,默认值为 #000000。例子:

  1. var drawing = document.getElementById('drawing');
  2. var context = drawing.getContext('2d');
  3. //描边
  4. context.strokeStyle = 'red';
  5. //填充
  6. context.fillStyle = '#0000ff';

绘制矩形

与矩形有关的方法有 fillRect()strokeRect()clearRect()
都接收4个参数(指定某个矩形):矩形的x坐标、y坐标(左上定点)、宽度、高度。单位为px。

首先,fillRect 方法绘制的矩形会填充颜色,由 fillStyle 指定:

  1. var context = drawing.getContext('2d');
  2. //red rectangle
  3. context.fillStyle = '#ff0000';
  4. context.fillRect(10, 10, 50, 50);
  5. //with opacity
  6. context.fillStyle = 'rgba(0, 0, 255, 0.5)';
  7. context.fillRect(100, 100, 60, 60,);

换颜色需要重新指定 fillStyle,否则不用。

strokeStyle 则对应 strokeRect() 的描边颜色。

描边的宽度由 lineWidth 属性控制,可以是任意整数。lineCap 属性可以控制线条末端是 buttroundsquare

claerRect()清除指定矩形区域内的矩形填充(有的话)


绘制路径

beginPath()

调用该方法表示要开始绘制新路径。

所有路径绘制好后调用一次 stroke()就行。


绘制文本

fillText()strokeText()可以绘制(实心/空心)文本。接收4个参数——要绘制的文本字符串、x坐标、y坐标、最大像素宽度(可选)。
文本样式通过3个属性设置:
- font:文本大小(px)和字体,如:'10px serif'
- textAlign:文本对齐方式,如:'start''end''left''right''center'
- textBaseline:表示文本的基线,如:'top''hanging''middle''alphabetic''ideographic''bottom'


变换

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注