html5 合成两张图片,HTML5 Canvas笔记——图像合成

编程展示各种图像的合成效果,效果的名称

图像合成

#canvas {

border: 1px solid cornflowerblue;

position: absolute;

left: 150px;

top: 10px;

background: #eeeeee;

border: thin solid #aaaaaa;

cursor: pointer;

-webkit-box-shadow: rgba(200, 200, 255, 0.9) 5px 5px 10px;

-moz-box-shadow: rgba(200, 200, 255, 0.9) 5px 5px 10px;

box-shadow: rgba(200, 200, 255, 0.9) 5px 5px 10px;

}

目标图顶部显源图

目标图中显源图

目标图外显源图

目标图上显源图

源图顶部显目标图

源图中显目标图

源图外显目标图

源图上显目标图

源图+目标图

只显示源图

异或组合

Canvas not supports

'use strict';

let context = document.getElementById('canvas').getContext('2d'),

selectElement = document.getElementById('compositingSelect');

/**

* 绘制文字

*/

let drawText = () => {

context.save();

context.shadowColor = 'rgba(100, 100, 150, 0.8)';

context.shadowOffsetX = 5;

context.shadowOffsetY = 5;

context.shadowBlur = 10;

context.fillStyle = 'cornflowerblue';

context.fillText('HTML', 20, 250);

context.strokeStyle = 'yellow';

context.strokeText('HTML', 20, 250);

context.restore();

};

//Event handlers……

let windowToCanvas = (canvas, x, y) => {

let bbox = canvas.getBoundingClientRect();

return {

x:x-bbox.left*(canvas.width/bbox.width),

y:y-bbox.top*(canvas.height/bbox.height)

};

};

context.canvas.οnmοusemοve=e=>{

let loc = windowToCanvas(context.canvas,e.clientX,e.clientY);

context.clearRect(0,0,context.canvas.width,context.canvas.height);

drawText();

context.save();

//设置选项即为全局合成属性

context.globalCompositeOperation=selectElement.value;

context.beginPath();

context.arc(loc.x,loc.y,100,0,Math.PI*2,false);

context.fillStyle='orange';

context.stroke();

context.fill();

context.restore();

}

//Init……

selectElement.selectedIndex=3;

context.lineWidth=0.5;

context.font='128pt Comic-sans';

drawText();

效果如图:

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

915ac7bbd426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值