一个Canvans合成的简单例子

<!DOCTYPE HTML>
<html lang="cn">

<head>
    <meta charset="utf-8">
    <title>canvans</title>
    <script src="modernizr-custom.js"></script>
    <script type="text/javascript">
        //检测window是否加载完毕最终的代码
        window.addEventListener('load', eventWindowLoaded, false);

        function eventWindowLoaded() {
            canvasApp();
        }

        //检测是否支持canvas
        //使用modernizr.js
        function canvasSupport() {
            return Modernizr.canvas;
        }

        //
        function canvasApp() {
            if (!canvasSupport()) {
                return;
            } else {
                var theCanvas = document.getElementById("canvas"); //创建画布实例
                var context = theCanvas.getContext("2d"); //获得2D上下文
            }
            drawScreen();

            function drawScreen() {
                //在屏幕上绘制一个大方块
                context.fillStyle = 'black';
                context.fillRect(10, 10, 200, 200);

                //globalCompositeOperation保留不变
                //绘制一个红色正方形
                context.fillStyle = 'red';
                context.fillRect(1, 1, 50, 50);

                //现在设置为source-over
                context.globalCompositeOperation = 'source-over';
                //在旁边再画一个红色正方形
                context.fillRect(60, 1, 50, 50);

                //现在设置为 destination-over
                context.globalCompositeOperation = "destination-over";
                context.fillRect(1, 60, 50, 50);

                //现在设置globalAlpha
                context.globalAlpha = .5;

                //现在设置为soucre-atop
                context.globalCompositeOperation = 'source-atop';
                context.fillRect(60, 60, 50, 50);

            }
        }
    </script>
</head>

<body>

    <canvas id="canvas" width="500" height="400">
                Your browser does not support the canvas element.
    </canvas>

</body>

</html>

globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上。

属性值

描述
source-over 默认。在目标图像上显示源图像。
source-atop 在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。
source-in 在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。
source-out 在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。
destination-over 在源图像上方显示目标图像。
destination-atop 在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。
destination-in 在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。
destination-out 在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。
lighter 显示源图像 + 目标图像。
copy 显示源图像。忽略目标图像。
xor 使用异或操作对源图像与目标图像进行组合。

猜你喜欢

转载自blog.csdn.net/weixin_42659625/article/details/82745503