uniapp canvas绘制图形和文字

  1. 定义一个canvas文本
<canvas class="myCanvas" canvas-id="myCanvas" ></canvas>
  1. 初始化canvas
let testCanvas = uni.createCanvasContext('myCanvas',that);
  1. 开始绘制
/**
* img 图片路径,可线上图片也可本地图片
* offsetLeft x轴偏移量
* offsetTop  y轴偏移量
* canvasW canvas宽
* canvasH canvas高
* */

testCanvas.drawImage(img,offsetLeft,offsetTop,canvasW,canvasH);

testCanvas.beginPath();
testCanvas.setStrokeStyle("rgba(255,79,88,0)");
testCanvas.setLineWidth(0);
testCanvas.arc(left-12, item.topY+12.5, 4, 4, Math.PI, false);//圆
testCanvas.moveTo(left, item.topY);//三角形 第一个点
testCanvas.lineTo(left, item.topY+25); //三角形第二个点
testCanvas.lineTo(left-10, item.topY+12.5); //三角形第三个点
testCanvas.stroke()
testCanvas.rect(left, item.topY, 70, 25); //长方形绘制					
testCanvas.fillStyle = 'rgba(255,79,88,.5)'; //若是给定了值就用给定的值否则给予默认值
testCanvas.fill();
testCanvas.stroke();
testCanvas.setFillStyle('#FFFFFF'); //文字颜色:默认黑色
testCanvas.setFontSize(14); //设置字体大小,默认10 
testCanvas.fillText(item.name,left+5,item.topY+18);//文字内容、x坐标,y坐标 文字的样式设置必须放置在文字填充前
testCanvas.closePath();
//合成
testCanvas.draw(true,()=>{
	uni.canvasToTempFilePath({
		canvasId:'myCanvas',
		success: (res) => {
			uni.getImageInfo({
				src:res.tempFilePath,
				success(re) {
					// console.log(re)
					that.canvasShow = false;
				}
			})
		}
	})
})
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值