• canvas相关api


    1.线性径变:ctx.createLinearGradient();

    1   var grd=ctx.createLinearGradient(0,0,170,0);
    2         grd.addColorStop(0,'black');
    3         grd.addColorStop(.5,'red');
    4         grd.addColorStop(1,'white');
    5         ctx.fillStyle=grd;
    6         ctx.fillRect(100,100,500,500);

    2.阴影:

     1 <script>
     2     (function(){
     3         var canvas = document.querySelector( '#cavsElem' );
     4         var ctx = canvas.getContext( '2d' );
     5         canvas.width = 600;
     6         canvas.height = 600;
     7         canvas.style.border = "1px solid #000";
     8         ctx.fillStyle='rgba(255,0,0,.9)';
     9         ctx.shadowColor='blue';
    10         ctx.shaodwBlur='10';//shadowBlur 属性设置或返回阴影的模糊级数
    11         ctx.shadowOffsetX=10;
    12 //      shadowOffsetX 属性设置或返回形状与阴影的水平距离。
    13 //      shadowOffsetX=0 指示阴影位于形状的正下方。
    14 //      shadowOffsetX=20 指示阴影位于形状 left 位置右侧的 20 像素处。
    15         ctx.shadovOffsetY=10;
    16         ctx.fillRect(100,100,100,100);
    17     }());
    18 </script>

    3.径向渐变:

     1 <script>
     2     (function() {
     3         var canvas = document.querySelector('#cavsElem');
     4         var ctx = canvas.getContext('2d');
     5         canvas.width = 600;
     6         canvas.height = 600;
     7         canvas.style.border = "1px solid #000";
     8         var rlg=ctx.createRadialGradient(300,300,10,300,300,200);//渐变开始圆的x,y坐标,半径,和渐变结束时候的状态;
     9         rlg.addColorStop(0,'teal');
    10         rlg.addColorStop(.4,'navy');
    11         rlg.addColorStop(1, 'purple');
    12         ctx.fillStyle=rlg;
    13         ctx.fillRect(100,100,500,500);
    14     }());
    15 </script>

    4.画布的移动,伸缩,旋转,透明度,状态的保存;

     1 <script>
     2     (function(){
     3         var canvas = document.querySelector( '#cavsElem' );
     4         var ctx = canvas.getContext( '2d' );
     5         canvas.width = 600;
     6         canvas.height = 600;
     7         canvas.style.border = "1px solid #000";
     8         // ctx1: 状态1
     9         ctx.fillStyle = 'red';
    10         ctx.fillRect(10, 10, 100, 100);
    11         //状态 只是 上下文的一些样式的设置。
    12         ctx.save(); // 把当前的上下文的状态保存起来 //  状态1
    13         // 把当前画布移动到 200,200位置
    14         ctx.translate( 200, 200); //把整个画布位移到200,200
    15         ctx.rotate(30 * Math.PI / 180 ); //把整个画布旋转30度
    16         ctx.scale(2, 2); //把整个画布放大x和y方向各2倍
    17         ctx.globalAlpha = .3;//设置透明度           // 状态2:
    18         ctx.fillStyle = 'green';
    19         ctx.strokeStyle = 'purple';
    20         ctx.moveTo(0, 0);
    21         ctx.lineTo(400, 0);
    22         ctx.moveTo(0, 0);
    23         ctx.lineTo(0, 400);
    24         ctx.stroke();
    25         ctx.fillRect(10, 10, 40, 40);
    26         ctx.restore(); // 把上一次保存的ctx状态,还原。
    27         //当前ctx:回到  状态1
    28         ctx.fillRect(400, 400, 100, 100);
    29     }());
    30 </script>

     5.将canvas转成一个图片:

    1 <script>
    2   console.log('canvas.toDataURL('image/jpeg',.6);
    3 </script>

    6.把canvas输出到另外一张图片上去;

    1 // 把canvas输出到一张图片上去
    2 // var img = document.getElementById('imgId');
    3 // img.src = canvas.toDataURL('image/png', .5);
    4 //把一个画布渲染到另外一个画布上。
    5 ctx2.drawImage(canvas1, 0, 0);
  • 相关阅读:
    PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键
    支付宝支付开发——当面付条码支付和扫码支付
    C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理
    ***微信 该连接无法访问问题解决办法
    JQuery 导入导出 Excel
    用PowerDesigner对现有的数据库反向工程建立E-R图
    js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
    微信网页第三方登录原理
    C# 添加Windows服务,定时任务
    微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
  • 原文地址:https://www.cnblogs.com/yangguoe/p/7909188.html
Copyright © 2020-2023  润新知