美文网首页
Number four

Number four

作者: 一顾SAMA | 来源:发表于2017-06-29 10:44 被阅读0次

                                                  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

          本文链接:https://www.haomeiwen.com/subject/icqmcxtx.html