zoukankan      html  css  js  c++  java
  • (十)合成

    globalAlpha = 0 【默认值为1,这个是改变透明度的 0-1】

    var canvas = document.getElementById("canvas");
        if(canvas.getContext){
            var ctx = canvas.getContext("2d");
            ctx.beginPath();
    
            //绘制一个红色矩形
            ctx.fillStyle = "red";
            ctx.fillRect(20,20,80,80);
    
            //修改全局透明度
            ctx.globalAlpha = 0.5;
    
            //绘制一个透明度为 0.5 的绿色矩形
            ctx.fillStyle = "green";
            ctx.fillRect(50,50,80,80);
    
            //修改全局透明度为1
            ctx.globalAlpha = 1;
    
            //绘制一个不透明的灰色矩形
            ctx.fillStyle = "grey";
            ctx.fillRect(70,70,80,80);
    
            ctx.stroke();
            ctx.closePath();
        }

    globalCompositeOperation = "" 【它的值是一个字符串】

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style>
            .divStyle{float:left;border:1px solid red;width:220px;height:200px;margin:5px;}
            .pStyle{font-family:Microsoft YaHei;font-size:22px;font-weight:bold;text-indent:1em;}
        </style>
    </head>
    <body>
    <script>
        var glo = [
            "source-over","source-in","source-out","source-atop",
            "destination-over","destination-in","destination-out",
            "destination-atop","lighter","copy","xor"
        ];
    
        //遍历数组,根据不同的值绘制图像
        for(i in glo){GCO(glo[i]);};
    
        //创建、绘制
        function GCO(stringTextGco){
            //创建元素
            var div = document.createElement("div");
            var p = document.createElement("p")
            var canvas = document.createElement("canvas");
    
            div.className = "divStyle";
            p.className = "pStyle";
            p.innerHTML = stringTextGco;
            canvas.width = 220;
            canvas.height = 150;
    
            //添加到页面
            div.appendChild(p);
            div.appendChild(canvas);
            document.body.appendChild(div);
    
            //画布
            if(canvas.getContext){
                var ctx = canvas.getContext("2d");
    
                    ctx.beginPath();
    
                    ctx.fillStyle = "black";
                    ctx.fillRect(30,0,70,70);
    
                    //后绘制的图像位于先绘制的图像上方
                    ctx.globalCompositeOperation = stringTextGco;
    
                    ctx.fillStyle = "red";
                    ctx.fillRect(60,30,70,70);
    
                    ctx.closePath();
            };
        };
    </script>
    </body>
    </html>

    以上代码运行后效果图:(globalCompositeOperation的每个值的不同效果

  • 相关阅读:
    php-fpm sock文件权限设置
    window netsh interface portproxy 配置转发
    powershell 删除8天前的日志
    Ansible拷贝文件遇到的问题
    Git-Credential-Manager-for-Mac-and-Linux
    MySQL开启远程连接的方法
    mac安装神器brew
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    Linux中如何安装RAR
    Linux常用压缩和解压命令
  • 原文地址:https://www.cnblogs.com/chefweb/p/6046507.html
Copyright © 2011-2022 走看看