• 控制叠加风格


    <!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>

  • 相关阅读:
    Spring Boot基础
    MyBatis开启二级缓存
    MyBatis逆向工程
    html实现“加入收藏”代码
    vue-router 基本使用
    vue 脚手架安装
    webpack入门 webpack4常见出错之处
    $.ajax()方法详解
    防止网页被嵌套
    H5字符实体参考
  • 原文地址:https://www.cnblogs.com/xiaoleidiv/p/3209463.html
Copyright © 2020-2023  润新知