千家信息网

Canvas渐进填充与透明实现图像的Mask效果怎么实现

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章主要讲解了"Canvas渐进填充与透明实现图像的Mask效果怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Canvas渐进填充与透明实
千家信息网最后更新 2024年12月12日Canvas渐进填充与透明实现图像的Mask效果怎么实现

这篇文章主要讲解了"Canvas渐进填充与透明实现图像的Mask效果怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Canvas渐进填充与透明实现图像的Mask效果怎么实现"吧!

一:渐进填充(Gradient Fill)

Canvas支持两种渐进填充方式,一种为线性渐进填充(Line Gradient Fill),另外一种称

为经向渐变填充(RadialGradient Fill)。其API分别为:

createLinearGradient(x1, y1, x2, y2);

其中x1,y1为第一个点坐标,x2,y2为第二个点坐标。

createRadialGradient(x1, y1, r1, x2, y2, r2);

其中x1, y1为第一个中心点坐标,r1为半径,x2, y2为第二个中心点坐标,r2为半径。

为每个点设置颜色

addColorStop(position, color);

其中position表示位置,大小范围[0~1]其中0表示第一个点,1表示第二个点坐标

Color表示颜色值,任何CSS的颜色值。

渐进填充对象创建与配置之后可以用来设置context的strokeStyle与fillStyle实现文字,

几何形状的渐进颜色填充。

线性渐进方式的代码演示:

1. 垂直(Y)方向颜色渐进

复制代码

代码如下:

// vertical/Y direction

var lineGradient = ctx.createLinearGradient (50, 0, 50, 200);

lineGradient.addColorStop(0, 'rgba(255, 0, 0, 1)');

lineGradient.addColorStop(1, 'rgba(255, 255, 0, 1)');

ctx.fillStyle = lineGradient;

ctx.fillRect(0, 0, 300, 300);

2. 水平(X)方向颜色渐进

复制代码

代码如下:

// horizontal/X direction

var lineGradient = ctx.createLinearGradient (0, 50, 200, 50);

lineGradient.addColorStop(0, 'rgba(255, 0, 0, 1)');

lineGradient.addColorStop(1, 'rgba(255, 255, 0, 1)');

ctx.fillStyle = lineGradient;

ctx.fillRect(0, 0, 300, 300);

3.垂直与水平同时(XY方向)颜色渐进

复制代码

代码如下:

// vertical and horizontal direction

var lineGradient = ctx.createLinearGradient (0, 0, 200, 200);

lineGradient.addColorStop(0, 'rgba(255, 0, 0, 1)');

lineGradient.addColorStop(1, 'rgba(255, 255, 0, 1)');

ctx.fillStyle = lineGradient;

ctx.fillRect(0, 0, 300, 300);

二:透明度(Transparent)

Canvas中透明度支持分为全局与局部透明设置,全局透明度的设置可以通过设置

Context.globalAlpha来实现。局部透明度可以通过fillStyle设置颜色值中alpha值通道

来实现。两种方式代码如下:

// change global alpha value

ctx.globalAlpha=0.5;

ctx.fillRect(50,50,75,50);

// change fill style color's alphachannel

ctx.fillStyle = 'rgba(225,225,225,0.5)';

ctx.fillRect(50,50,75,50);

两个效果是一样的。

三:照片透明渐进Mask效果

使用径向颜色渐变与透明度变化,实现在图像上的半透明面罩效果,脚本运行效果:

复制代码

代码如下:

var myImage = document.createElement('img');

myImage.src = "../test.png";

myImage.onload = function() {

ctx.drawImage(myImage, 80, 30, myImage.naturalWidth, myImage.naturalHeight);

var radialGradient = ctx.createRadialGradient (canvas.width/2, canvas.height/2, 10, canvas.width/2, canvas.height/2, 200);

radialGradient.addColorStop(0, 'rgba(247, 247, 247, 0)');

radialGradient.addColorStop(0.7, 'rgba(120, 120, 120, 0.5)');

radialGradient.addColorStop(0.9, 'rgba(0, 0, 0, 0.8)');

radialGradient.addColorStop(1, 'rgba(238, 238, 238, 1)');

ctx.beginPath();

ctx.arc(canvas.width/2, canvas.height/2, 300, 0, Math.PI * 2, true);

ctx.closePath();

ctx.fillStyle = radialGradient;

ctx.fill();

}

感谢各位的阅读,以上就是"Canvas渐进填充与透明实现图像的Mask效果怎么实现"的内容了,经过本文的学习后,相信大家对Canvas渐进填充与透明实现图像的Mask效果怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

代码 颜色 效果 图像 坐标 透明度 方向 方式 学习 全局 内容 半径 可以通过 水平 线性 支持 两个 中心点 位置 全局与局部 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 黄浦区本地软件开发技术指导 游戏服务器人太多卡住了怎么办 学生设计数据库时遇到的问题 三大运营商软件开发 金牛区乐渔软件开发 管理软件开发系统 肯德基订餐软件开发 网络安全python学习路径 酒店网络安全管理报告 阿里云服务器运行自己的代码 石家庄网络技术学院 数据库事物中间超时了 会回滚吗 饿了吗软件开发者沧州 通信行业网络安全监管情况 网络安全应急处置调度负责部门 网络技术专业收入 推荐的数据库所有者 面条网络技术有限公司 南阳超市电商软件开发价格 网络安全五小结一总结 黄浦区本地软件开发技术指导 浙江正规网络技术服务咨询报价 jaba连接数据库项目 华为服务器 河南信产投 游戏服务器维护要维护多久 马达加斯加下载软件开发 静态设置中管理服务器lp 购物车数据库表方式 深圳扫码点餐软件开发 学生网络安全黑板报图案
0