Canvas

本文介绍了HTML5的Canvas元素,它是一个用于在网页上进行图形绘制的API。Canvas提供了getContext()方法来获取2D或3D绘图模型,并能通过toDataURL()将画布转换为Base64图像。2D模型中,重点讲解了fillText()和strokeText()等方法,用于在画布上填充和描边文字。
摘要由CSDN通过智能技术生成


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是canvas?

由js代码实现功能,在 <canvas> 元素上进行绘图的一种绘图API。
<canvas> 标签只是图形容器,必须使用脚本来绘制图形。

如一些数据分析表,写特效,写网页游戏,地图API等都会用到canvas

canvas自带两个属性值:width和height,为canvas 绘制区域的宽高
注意:不要直接使用style给canvas设置宽高(元素的大小)

二、Canvas接口

1. 方法

(1)getContext () 返回绘制模型

参数为2d,返回CanvasRenderingContext2D ,二维平面绘图

<body>
<canvas id="canvas"></canvas>
<script>
    var sw=screen.availWidth;
    var sh=screen.availHeight;

    //获取canvas对象
    //设置canvas宽高尺寸
    canvas.width=sw;
    canvas.height=sh;

    //创建2D模型
    var context=canvas.getContext('2d');
    
</script>
</body>

参数为webgl,3D绘图,加速渲染3D 模型,前提是浏览器需要支持WebGL

(2)toDataURL() 将画布转化为Base64图

默认值为image/png,还可以是image/jpeg

	//转化图片
    console.log(canvas.toDataURL('image/jpeg',0.6));

2. 2D模型的方法

属性:

1.在对象CanvasRenderingContent2D的原型对象上可以添加方法,直接调用

2.context.canvas 返回当前操作的canvas对象(只读属性)

属性作用
fillStyle填充样式 默认颜色#000
strokeStyle描边样式 默认黑色
font设置 绘制文本字体控制 默认10px
globalAlpha设置全局透明度 0-1
globalCompositeOperation改变canvas绘图的混合模式
lineCap线条端点的样式
lineJoin线条转角的样式
lineWidth设置线宽
shadowBlur阴影的模糊程度
shadowColor阴影的颜色
shadowOffsetX阴影x方向偏移
shadowOffsetY阴影y方向偏移
textAlign绘制文本的对齐方式
textBaseline绘制文本的基线方式

方法:

方法作用
fillText绘制纯文本
strokeText绘制描边文本
fill内部填充
stroke填充描边
arcTo绘制圆弧
bezierCurveTo绘制贝塞尔曲线
fillReact绘制区域
clearReact清除区域
clip剪裁 (先设置裁剪路径)
createImageData创建image图像数据
putImageData绘制imageData对象到指定位置
save保存当前canvas的状态在 栈的最上面
restore一次从栈的上面 取出canvas的状态

1.fillText 填充文字

	//绘制文本   从底向上绘制
    conText2D.font='50px 宋体';  //加字体才会显示大小
    conText2D.fillStyle='red';
    conText2D.globalAlpha=0.5;   //透明
    conText2D.shadowBlur=2;   //阴影模糊程度
    conText2D.shadowColor='blue';
    conText2D.shadowOffsetX=5;
    conText2D.shadowOffsetY=5;
    conText2D.fillText('Hello World!',60,60,400);
    //(60,60,400)分别为起始坐标和最大限宽   x,y坐标从左下角开始算起

在这里插入图片描述
2.strokeText 描边文字

	conText2D.beginPath();
    conText2D.strokeStyle='blue';
    conText2D.font = '50px 宋体';
    conText2D.strokeText('描边文字',500,100,300);
    conText2D.closePath();

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值