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;
				}
			})
		}
	})
})
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐