2. canvas绘制渐变效果、绘制图像

一.绘制渐变效果

  1. 线性渐变

语法:

		//创建CanvasGradient对象
		var g = context.createLinearGradient(x1,y1,x2,y2);
		//追加渐变颜色
		g.addColorStop(颜色开始的相对位置,颜色);

绘制线性渐变的实例:

	<canvas id="cas" width="300" height="300"></canvas>
	<script type="text/javascript">
		var canvas = document.getElementById("cas");
		var ctx = canvas.getContext("2d");

		var g = ctx.createLinearGradient(0,0,300,0);
		g.addColorStop(0, "rgb(255,0,0)");
		g.addColorStop(0.5, "rgb(0,255,0)");
		g.addColorStop(1, "rgb(0,0,255)");

		ctx.fillStyle = g;
		ctx.fillRect(20,20,260,260);
	</script>

效果图:

 


2.圆形渐变

语法:

		//创建CanvasGradient对象
		var g = context.createRadialGradient(x1,y1,r1,x2,y2,r2);
		//追加渐变颜色
		g.addColorStop(颜色开始的相对位置,颜色);

例子:

	<canvas id="cas" width="300" height="300"></canvas>
	<script type="text/javascript">
		var canvas = document.getElementById("cas");
		var ctx = canvas.getContext("2d");

		var g = ctx.createRadialGradient(150,150,50,150,150,100);
		g.addColorStop(0, "rgb(255,0,0)");
		g.addColorStop(0.5, "rgb(0,255,0)");
		g.addColorStop(1, "rgb(0,0,255)");

		ctx.fillStyle = g;
		ctx.fillRect(20,20,260,260);
	</script>

效果图:

 


3.Context的属性

Context中定义的主要属性
属性说明
fillStyle填充颜色
font字体颜色
globalAlpha透明度(0:透明,1:不透明)
globalCompositeOperation重叠方法的指定
lineCap线的终端类型(butt、round、square)
lineJoin

线的连接类型(rount、bevel、miter)

lineWidth线的粗细
miterLimitlineJoin为miter时,2直线结合部分的处理方式
shadowBlur阴影适用的模糊水平
shadowColor阴影的颜色
shadowOffsetX阴影x方向的距离
shadowOffsetY阴影y方向的距离
strokeStyle线的颜色
textAlign文本的配置方法(start、end、left、right、center)
textBaseline文本基准线的设置

 


二.绘制图像

 

1.图像绘制的基本步骤如下:

  1. 读取图像文件
  2. 在canvas中进行绘制
		var image = new Image();
		image.src = "图像文件路径";	
		image.onload = function(){/* 图像读取时的处理 */};

有三种drawImage()方法用于图像的绘制:

  1. 直接绘制
context.drawImage(image,dx,dy);

     2.尺寸修改(resize)

context.drawImage(image,dx,dy,dw,dh);

    3.图像截取

context.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh);

2.像素处理的API:

像素处理方法
方法说明
imagedata = ctx.getImageData(sx,sy,sw,sh)返回以(sx,sy)为左上顶点,宽为sw,高为sh的矩形图像-imagedata对象
ctx.putImageData(imagedata,dx,dy)将imagedata所表示的图像绘制在顶点坐标为(dx,dy)处

简单的说,使用getImageData()方法取出Canvas上图像的像素数据,通过javascript加工过这些像素数据后,使用putImageData方法,重新绘制到Canvas中。

ImageData对象的属性
属性说明
imagedata.width图像数据的宽度
imagedata.height图像数据的高度
imagedata.data图像数据(CanvasPixelArray类型)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值