Number four

                                              canvas

1.绘制图片

* 基本绘图  drawImage(img, x, y)

* 绘图并设置大小  drawImage(img, x, y, w, h)

* 裁剪图片  drwaImage(img, sx, sy, sw, sh, x, y, w, h)  先写原图的左边大小,在写画布的坐标大小

2.阴影(了解一下 ,少用 性能差)

*类比css3的阴影

* shadowColor 属性  设置返回用于阴影的颜色

* shadowBlur  属性  模糊值  ·大于1的正整数,数值越高,模糊程度越大

* shadowOffsetX  属性 水平方向的偏移量  

* shadowOffsetY  属性  垂直方向的偏移量

ctx.fillStyle = "rgba(255,0,0, .9)"

ctx.shadowColor = "teal";

ctx.shadowBlur = 10;

ctx.shadowOffsetX = 10;

ctx.shadowOffsetY = 10;

ctx.fillRect(100, 100, 100, 100);

//绘制矩形

cxt.fillRect(100,100,200,100);

cxt.fillStyle = "red";

cxt.shadowColor = "pink";

cxt.shadowBlur = 5;

cxt.shadowOffsetX = 5;

cxt.shadowOffsetY = 5;

3.渐变

##### 线性渐变

* createLinearGradient(x0, y0, x1, y1);

* graObj.addColorStop(位置, 颜色)  位置是0~1之间的小数

##### 径向渐变

* createRedialGradient(x0, y0, r0, x1, y1, r1);

* graObj.addColorStop(位置, 颜色)

5.填充背景

* createPattern(img, repeat)  第二个参数是填充方式

* repeate

* repeate-x

* repeate-y

* no-repeate

* 填充对象跟渐变对象类似,相当于一种颜色

6.1.变换 - 缩放

scale(w,h)

·scale()方法缩放当前绘图,更大或更小

·语法:context.scale(scalewidth,scaleheight)

oscalewidth :缩放当前绘图的宽度(1=100%, 0.5=50%, 2=200%,依次类推)

oscaleheight :缩放当前绘图的高度(1=100%, 0.5=50%, 2=200%, etc.) +注意:缩放的是整个画布,缩放后,继续绘制的图形会被放大或缩小。

6.2.变换 - 位移

translate(w, h)

·ctx.translate(x,y)方法重新映射画布上的(0,0)位置

·参数说明:

·x: 添加到水平坐标(x)上的值

·y: 添加到垂直坐标(y)上的值

·发生位移后,相当于把画布的0,0坐标 更换到新的x,y的位置,所有绘制的新元素都被影响。



6.3.变换 - 旋转

rotate(angle)  弧度

·context.rotate(angle);方法旋转当前的绘图

·注意参数是弧度(PI)

·如需将角度转换为弧度,请使用degrees*Math.PI/180公式进行计算。

7.绘图环境的保存和释放

*·ctx.save()保存当前环境的状态

        o      可以把当前绘制环境进行保存到缓存中。

* ctx.restore()  释放前面保存的绘图环境

               o   获取最近缓存的ctx

·一般配合位移画布使用。

8.设置绘制环境的透明度(了解)

·context.globalAlpha=number;

·number:透明值。必须介于0.0(完全透明) 与1.0(不透明) 之间。

·设置透明度是全局的透明度的样式。注意是全局的。

9.画布限定区域绘制(了解)

·ctx.clip();方法从原始画布中剪切任意形状和尺寸

·一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内(不能访问画布上的其他区域)

·一般配合绘制环境的保存和还原。


10.画布保存base64编码内容

·把canvas绘制的内容输出成base64内容。

·语法:canvas.toDataURL(type, encoderOptions);

·例如:canvas.toDataURL("image/jpg",1);

·参数说明:

otype,设置输出的类型,比如image/png image/jpeg等

oencoderOptions:0-1之间的数字,用于标识输出图片的质量,1表示无损压缩,类型为:image/jpeg或者image/webp才起作用。

案例1:

var canvas = document.getElementById("canvas");

var dataURL = canvas.toDataURL();

console.log(dataURL);

// "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNby

// blAAAADElEQVQImWNgoBMAAABpAAFEI8ARAAAAAElFTkSuQmCC"

var img = document.querySelector("#img-demo");//拿到图片的dom对象

img.src = canvas.toDataURL("image/png");      //将画布的内容给图片标签显示

你可能感兴趣的:(Number four)