前端canvas绘图,利用canvas在图片上面绘制标记以及给canvas添加点击事件。
 需要实现的效果如下图:
 
 首先需要一个承载的核心画布
<canvas id="canvas" width="800" height="600"></canvas>
 
全部代码:
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>canvas</title>
	</head>
	<body>
		<canvas id="canvas" width="800" height="600"></canvas>
	</body>
</html>
<script type="text/javascript">
	const canvas = document.getElementById('canvas');
	const ctx = canvas.getContext('2d');
	//绘制背景图
	var backgroundImg = new Image();
	backgroundImg.src = "ditu.png"; //可以是本地图片地址
	backgroundImg.onload = function() {
		//这里要注意,canvas.width,canvas.height要等于这个就是你的Canvas width height
		ctx.drawImage(this, 0, 0, canvas.width, canvas.height); // 绘制底图
		var topImg = new Image();
		//topImg.src = 'https://www.baidu.com/static/imgs/cw.jpg'; 此处可以网络地址
		topImg.src = "jizhong_n.png";
		topImg.onload = function() {
			var x = 680; // 假设你想在底图上的(680, 150)位置绘制上图
			var y = 150;
			ctx.drawImage(topImg, x, y); // 绘制上图
		}
		var topImg = new Image();
		topImg.src = "jizhong_n.png";
		topImg.onload = function() {
			var x = 580;
			var y = 250;
			ctx.drawImage(topImg, x, y); // 绘制上图
		}
		var topImg = new Image();
		topImg.src = "jizhong_n.png";
		topImg.onload = function() {
			var x = 130;
			var y = 350;
			ctx.drawImage(topImg, x, y); // 绘制上图
		}
	}
	//点击事件
	canvas.addEventListener('mousedown', function(e) {
		var x = e.offsetX,
			y = e.offsetY;
		// 检查点击的位置是否在蓝色矩形内
		if (x >= 684 && x <= 722 && y >= 152 && y <= 207) {
			alert('您点击了第1个蓝色区域!');
		}
		if (x >= 585 && x <= 621 && y >= 251 && y <= 310) {
			alert('您点击了第2个蓝色区域!');
		}
		console.log(x + "---" + y);
	});
</script>
                






![[数据集][目标检测]医疗防护服检测数据集VOC+YOLO格式649张7类别](https://img-blog.csdnimg.cn/direct/ff681a7af21b47e39ed71dd66d7081d7.png)











