当前位置:   article > 正文

canvas绘图中的图片组合_wpf canvas图层组合

wpf canvas图层组合

时间2020-4-4周六(第一次写,也就是一个学习总结)

1.canvas简介

Canvas是一个矩形区域的画布,可以用JS控制每一个像素在上面绘画。canvas 标签使用 JavaScript 在网页上绘制图像,本身不具备绘图功能。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。

canvas使用方法

获取画布

let canvas=document.getElementById("canvas");
  • 1

获取画笔

let context=canvas.getContext("2d");
  • 1

后面就可以开始画图了

context.arc(80,0,80,0,Math.PI,false);//前两个数字是圆心坐标,第三个数字是半径,(0,Math.PI),false顺时针
  • 1

各种样式及例子(只需要在两个图片的代码中加入globalCompositeOperation属性)

1.source-over

默认样式(和不设置globalCompositeOperation属性一样)。
在目标图像上(先画的)显示源图像(后画的)

context.globalCompositeOperation="source-over";
  • 1

效果展示
source-over

source-atop

在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。

<canvas id="canvas" height="500" width="500">
    <p>您的浏览器不支持canvas</p>
</canvas>
<script type="text/javascript">
    //绘制圆形
    let canvas=document.getElementById("canvas");
    let context=canvas.getContext("2d");
    //第一种
    context.fillStyle = "red";//设置填充颜色(风格)
    context.beginPath();
    context.arc(40,250,30,0,Math.PI*2,true);
    context.closePath();//填充颜色需要关闭路径
    context.fill();//开始填充
    context.globalCompositeOperation="source-atop";//关键代码
    context.fillStyle = "green";
    context.beginPath();//开始路径
    context.arc(70,250,25,0,Math.PI*2,true);
    context.closePath();//填充颜色需要关闭路径
    context.fill();//开始填充
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

效果展示
source-atop

source-in

相当于第二个图像覆盖了第一个图像,但两个图形都变成透明的,只有重叠的地方显色(因为第一个图形被覆盖,所以显色为第二个图形颜色)

context.globalCompositeOperation="source-in";
  • 1

效果展示
在这里插入图片描述

source-out

第一个图形覆盖住第二个图形,并变得透明,第二个图形不受影响(只不过被覆盖的地方无法显色)

context.globalCompositeOperation="source-out";
  • 1

效果展示
在这里插入图片描述

小结:前面四种和后面四种效果完全一样,只不过覆盖顺序改反过来了 
  • 1

destination-over

在源图像上方显示目标图像。

context.globalCompositeOperation="destination-over";
  • 1

效果展示
在这里插入图片描述

destination-atop

在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。

context.globalCompositeOperation="destination-atop";
  • 1

效果展示
在这里插入图片描述

destination-in

第一个图形覆盖第二个图形,全部透明,只有重叠部分显色(第一个图形的颜色)

context.globalCompositeOperation="destination-in";
  • 1

效果展示
在这里插入图片描述

destination-out

第一个图形覆盖第二个图形,第二个图形所在区域全部透明

context.globalCompositeOperation="destination-out";
  • 1

效果展示
在这里插入图片描述

lighter

两个图形都显色,重叠部分颜色融合

context.globalCompositeOperation="lighter";
  • 1

在这里插入图片描述

copy

这个属性写在哪个图形后面,哪个图形就透明不显色

context.globalCompositeOperation="copy";
  • 1

效果展示
在这里插入图片描述

总结

1.globalCompositeOperation这个属性有目标性(自己总结的用词可能不是很准确),写在哪一个图形后面,哪一个图形就是第一个图形,就算是写在最后面的代码上面,那么哪一个代码组成的图形就为组合的时候的第一个图形
2.1-4的属性和5-8的属性基本一一对应,不同点是1-4是第一个图形被覆盖,5-8是第二个图型被覆盖。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/107387
推荐阅读
相关标签
  

闽ICP备14008679号