HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字

2020-04-21 22:45:54易采站长站整理

   y:文字绘制其实位置左上角坐标y

   width:文字一行的宽度,超出会自动进行换行

   fontSize:文字大小,整数,单位为px

   fontWeight:文字粗细bold、bolder等或者400,500,600…同css的font-weight

   fontFamily:文字字体,同css

   lineHeight:行高,整数,单位px

   color:颜色

   marginBottom:如果有多段文字,还可以指定段落之间的距离

文字绘制,同样是异步的,知道调用draw(callback)才真正进行绘制


...
<script src="../dist/li-canvas.js"></script>
...
<body>
<canvas id="test" width="1563" height="1180" style="width: 782px;height: 590px;border: 1px solid red"></canvas>
<script> var canvas=new LiCanvas('test')
canvas.addDrawTextTask("要绘制的文字",{
x:110,
y:496,
width:1340,
fontSize:54,
fontWeight:'bolder',
fontFamily:"PingFangSC-Regular,'Microsoft YaHei',SimSun,Arial,'Helvetica Neue',sans-serif",
lineHeight:70,
color:'#1a1a1a',
marginBottom:40
})
canvas.draw(()=>{
console.log("绘制完成")
}) </script>
</body>
...

•绘制多段文字

方法1:反复调用addDrawTextTask(text,style),同上

方法2:text可以传入一个数组,可以共用style


...
<script src="../dist/li-canvas.js"></script>
...
<body>
<canvas id="test" width="1563" height="1180" style="width: 782px;height: 590px;border: 1px solid red"></canvas>

<script> var canvas=new LiCanvas('test')
canvas.addDrawTextTask(["要绘制的文字段落1","要绘制的文字段落2"],{
x:110,
y:496,
width:1340,
fontSize:54,
fontWeight:'bolder',
fontFamily:"PingFangSC-Regular,'Microsoft YaHei',SimSun,Arial,'Helvetica Neue',sans-serif",
lineHeight:70,
color:'#1a1a1a',
marginBottom:40
})

canvas.draw(()=>{
console.log("绘制完成")
}) </script>
</body>
...

其中style也可以在对象实例化的时候传入一个默认值,避免反复设置一些共用的style


...
<script src="../dist/li-canvas.js"></script>
...
<body>
<canvas id="test" width="1563" height="1180" style="width: 782px;height: 590px;border: 1px solid red"></canvas>
<script> var canvas=new LiCanvas('test',{
fontStyle:{
fontSize:20,
fontFamily:"PingFangSC-Regular,'Microsoft YaHei',SimSun,Arial,'Helvetica Neue',sans-serif",