canvas基础--文字和渐变

本文介绍了HTML5 Canvas中如何绘制实心和镂空文字,并展示了线性及径向渐变的使用方法,包括创建渐变、设置颜色停止点以及应用到文字和图形上。通过实例代码和效果展示,帮助理解Canvas的文字和渐变操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 一、绘制文字
###### 1.绘制实心文字
```
//老规矩,获取元素
    var myCanvas = document.getElementById("myCanvas");
var context = myCanvas.getContext("2d");
//开始路径
    context.beginPath();
//设置字体:样式(斜体)、大小(单位是像素,不可缺少)、字体(一定不能少)
context.font = "italic 50px serif";
//文字的颜色
context.fillStyle = "red";
//基线对齐,就是上下对齐
context.textBaseline = "middle";
//水平居中,就是左右对齐
context.textAlign = "center";
//文本设置:参数一,文本内容;参数二、参数三,位于画布的位置(x,y);
context.fillText("hello world",100,100);


```
效果图:![屏幕快照 2017-12-27 下午10.31.15.png](http://upload-images.jianshu.io/upload_images/7426646-6bea779cdc10a5a7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


2.绘制镂空文字
```
//设置基本样式
var myCanvas = document.getElementById("myCanvas");
var context = myCanvas.getContext("2d");
context.beginPath();
context.font = "italic 50px serif";
context.textBaseline = "middle";
//线性渐变的开始:参数1、2(渐变的开始位置);参数3、4(渐变的结束位置)。
var gradient = context.createLinearGradient(100,100,300,180);
//参数1,颜色占整体渐变颜色的概率(只能是0~1),数字越大,所占份额越多。
gradient.addColorStop(0,"blue");
gradient.addColorStop(0.5,"yellow");
gradient.addColorStop(0.75,"green");
gradient.addColorStop(1,"red");
//将渐变添加给文字,因为这里用的是stroke();方法,所以文字是镂空的。
context.strokeStyle = gradient;
context.strokeText("hello world",200,100);
```
效果图:![屏幕快照 2017-12-27 下午10.39.27.png](http://upload-images.jianshu.io/upload_images/7426646-385d0c01eeec9664.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


3.给矩形添加线性渐变
```
        var myCanvas = document.getElementById("myCanvas");
var context = myCanvas.getContext("2d");
context.beginPath();
var gradient = context.createLinearGradient(100,100,400,400);
gradient.addColorStop(0,"blue");
gradient.addColorStop(0.5,"yellow");
gradient.addColorStop(0.75,"green");
gradient.addColorStop(1,"red");
context.fillStyle = gradient;
context.fillRect(0,0,myCanvas.width,myCanvas.height);
```
效果图:![屏幕快照 2017-12-27 下午10.42.11.png](http://upload-images.jianshu.io/upload_images/7426646-462767a11aa3dcca.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


4.径向渐变
```
        var myCanvas = document.getElementById("myCanvas");
var context = myCanvas.getContext("2d");
context.beginPath();
//前三个参数为第一个圆的圆心和半径,后三个参数为第二个圆的圆心和半径
var gradient = context.createRadialGradient(150,150,50,150,150,100);
gradient.addColorStop(0,"blue");
gradient.addColorStop(0.5,"yellow");
gradient.addColorStop(0.75,"green");
gradient.addColorStop(1,"red");
context.fillStyle = gradient;
context.fill();
context.fillRect(0,0,myCanvas.width,myCanvas.height);
```
效果图:![屏幕快照 2017-12-27 下午10.47.39.png](http://upload-images.jianshu.io/upload_images/7426646-a3b6c809c45c78d7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


方法大致都差不多,读者可以自行尝试,这里就不详细解释了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值