zoukankan      html  css  js  c++  java
  • 控制叠加风格

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>控制叠加风格</title>
        <style>
            option {
            height:24px;
            line-height:24px
            }
        </style>
    </head>
    <body>
        <select style="height:40px; font-size:18px; " onchange="draw(this.value);">
            <option value="source-over">source-over
                新绘制的图形将会显示在顶层,覆盖以前绘制的图形。这是默认的行为
            </option>
            <option value="destination-over">destination-over
                新绘制的图形将放在原图形的后面
            </option>
            <option value="source-in">source-in
                新绘制的图形与原图形进行in运算,只显示新图形与原图形重叠的部分,新图形与原图形的其他部分都会变成透明
            </option>
            <option value="destination-in">destination-in
                原图形与新绘制的图形做in运算,只显示原图形与新图形重叠的部分,新图形与原图形的其他部分都会变成透明
            </option>
            <option value="source-out">source-out
                新绘制的图形与原图形做out运算,只显示新图形与原图形不重叠的部分,新图形与原图形的其他部分都会变成透明
            </option>
            <option value="destination-out">destination-out
                原图形与新绘制的图形做out运算,只显示原图形与新图形不重叠的部分,新图形与原图形的其他部分都会变成透明
            </option>
            <option value="source-atop">source-atop
                只绘制新图形与原图形重叠部分和原图形未被覆盖的部分,新图形的其他部分变成透明的
            </option>
            <option value="destination-atop">destination-atop
                只绘制原图形与新图形重叠部分和新图形未重叠的部分。原图形的其他部分变成透明的。不绘制新图形的重叠部分。
            </option>
            <option value="lighter">lighter
                新图形和原图形都绘制。重叠部分绘制两种颜色值相加的颜色
            </option>
            <option value="xor">xor
                绘制新图形与原图形不重叠部分,重叠部分变成透明的
            </option>
            <option value="copy">copy
                只绘制新图形,原图形变成透明的
            </option>
        </select>
        <canvas id="ourCanvas" width="700" height="500" style="border:3px dashed #0094ff "></canvas>
    <script type="text/javascript">
        var canvas = document.getElementById("ourCanvas");
        var ctx = canvas.getContext('2d');
        var draw = function (compositeOper) {
            //保持当前的绘图状态
            ctx.save();
            //获取canvas元素对应的DOM对象
            ctx.clearRect(0, 0, 400, 200);
            ctx.fillStyle = '#ed0c43';
            ctx.font='italic 30px 黑体' ;
            ctx.textBaseline = 'top';
            ctx.fillText("原图形", 160, 100);
            ctx.fillRect(60, 220, 160, 100);

            //设置图形叠加风格
            ctx.globalCompositeOperation = compositeOper;
            //设置填充颜色
            ctx.fillStyle = '#000'
            ctx.font = 'italic 30px 黑体';
            ctx.textBaseline = 'top';
            ctx.fillText("新图形", 260,200);
            ctx.fillRect(160, 270, 160, 100);
            //恢复之前保存的绘图状态
            ctx.restore();
        }
        draw("destination-over")
    </script>
    </body>
    </html>

  • 相关阅读:
    前端+php实现概率抽奖
    rem.js的用法及在浏览器端的适配
    python 使用记录及问题
    python 工具链 虚拟环境和包管理工具 pipenv
    python 工具链 多版本管理工具 pyenv
    python 工具链 包管理工具 pip
    ansible 使用记录
    mongodb connection refused because too many open connections: 819
    wordpress 常用操作
    服务器硬件测试
  • 原文地址:https://www.cnblogs.com/xiaoleidiv/p/3209463.html
Copyright © 2011-2022 走看看