HTML5学习第18篇——绘制虚线、文本、图片

1、绘制虚线

setLineDash(数组)

    <canvas width="800" height="600"></canvas>
	<script type="text/javascript">
		var c = document.querySelector('canvas');
		var ctx = c.getContext("2d");

		ctx.moveTo(100,100);
		ctx.lineTo(600,100);

		//绘制虚线,参数是一个数组(线长,空白长)
		//ctx.setLineDash([10,10]);
		//ctx.setLineDash([20,10]);
		//按照线、空、线、空、线、空的格式,循环使用10,5,20这三个数进行填充
		//例如:线10、空5、线20、空10、线5、空20...
		ctx.setLineDash([10,5,20]);
		//ctx.setLineDash([10,5,20,5]);
		ctx.stroke();

	</script>

2、绘制文本

  • 方法
方法 描述
fillText() 在画布上绘制“被填充的”文本
strokeText() 在画布上绘制文本(无填充)
  • 示例
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>canvas 绘制文本</title>
	<style type="text/css">
		canvas{
			border:1px solid black;
		}
	</style>
</head>
<body>
	<canvas width="600" height="400"></canvas>
	<script type="text/javascript">
		var c = document.querySelector('canvas');
		var ctx = c.getContext("2d");

		//绘制画布中心线
	   	ctx.moveTo(300, 0);
	  	ctx.lineTo(300, 400);
	  	ctx.stroke();

	  	ctx.beginPath();

	  	ctx.moveTo(0, 200);
	  	ctx.lineTo(600,200);
	  	ctx.stroke();

	  	//设置文本的字号和字体
	  	ctx.font = "50px Arial";
	  	//设置字体的水平对齐方式
	  	ctx.textAlign = "center";
	  	ctx.textBaseline = "middle";

	  	//设置阴影的颜色
	    ctx.shadowColor="red";
	    //水平方向偏移量
	    ctx.shadowOffsetX=15;
	    ctx.shadowOffsetY=5;
	    //阴影的模糊度
	    ctx.shadowBlur=5;


	  	ctx.strokeText("Hello World",300,200);
	  	//ctx.fillText("Hello World",300,200);

	</script>
</body>
</html>
  • 示例效果

HTML5学习第18篇——绘制虚线、文本、图片

3、绘制图片

方法 描述
drawImage() 向画布上绘制图像、画布或视频

示例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>canvas 绘制图片</title>
<style type="text/css">
		canvas{
			border:1px solid black;
		}
	</style>
</head>
<body>
	<p>要使用的图像</p>
	<img src="../images/1.jpg">
	<p>画布</p>
	<canvas width="800" height="600"></canvas>
	<script type="text/javascript">
		var c = document.querySelector('canvas');
		var ctx = c.getContext("2d");

		var img = document.querySelector('img');
		img.onload=function (){
			/*
			img	规定要使用的图像、画布或视频。
			sx	可选。开始剪切的 x 坐标位置。
			sy	可选。开始剪切的 y 坐标位置。
			swidth	可选。被剪切图像的宽度。
			sheight	可选。被剪切图像的高度。
			x	在画布上放置图像的 x 坐标位置。
			y	在画布上放置图像的 y 坐标位置。
			width	可选。要使用的图像的宽度。(伸展或缩小图像)
			height	可选。要使用的图像的高度。(伸展或缩小图像)
			*/
			//drawImage(img,x,y)
			//ctx.drawImage(img,10,10);

			//实现图片的缩放
			//ctx.drawImage(img,10,10,400,200);

			//实现图片的裁剪
			ctx.drawImage(img,100,100,400,200,10,10,400,200);
		}

	</script>
	
</body>
</html>

效果图如下:

HTML5学习第18篇——绘制虚线、文本、图片