ae亮度反转遮罩被变色了

ae亮度反转遮罩被变色了,第1张

遮罩Mask的颜色可以通过点击Mask前面的矩形色彩小图标来进行修改

方法步骤:双击电脑桌面的AE快捷方式启动软件。新建一个项目,并创建一个合成。导入一张图,将其设定成新建合成。此时合成图层中也加载了该图片。选中合成图层中的图片,按Ctrl+D复制并粘贴得到一个新的图层。将上一层的可见性取消,独显第二个图层。保持第二 个图层处于激活的状态,给该层添加一个色调效果。即把该图层的变成了黑白色调。显示并选中第一图层,给该图层添加一个遮罩蒙版。此时可以看到遮罩所在的地方为有彩色的地方,没有遮罩的地方为黑白色。给蒙版添加关键帧动画,激活蒙版路径关键,时间为1时遮罩在图片中间位置;时间为0时遮罩在图片外的左上角,时间为1.5时激活蒙版扩展关键帧,蒙版大小不变;时间为2时更改蒙版的像素大小,使整个图片变成角彩色的效果。这样就创建了一个从左上角移入到图片中间然后放大的遮罩动画;色彩也跟着遮罩而产生。

一个剪切蒙版的概念非常简单:使用一个图形来约束一幅图像,使图像只有在图形轮廓下面的部分可见,创建一种“cookie-cutter”效果。本教程将教大家制作一种SVG文字蒙版遮罩效果。

一个剪切蒙版的概念非常简单:使用一个图形来约束一幅图像,使图像只有在图形轮廓下面的部分可见,创建一种“cookie-cutter”效果。

SVG格式在几年前就已经支持剪切蒙版了,通过我们前一篇文章学习的SVG描边文字,再来整合剪切蒙版效果是非常容易的。

首先,将你需要的图片放置在页面中,它将作为蒙版图片。

<img src="yukon-river.jpg" alt="Knockout" id="knockout-text">

对于图像有两个要求:1、它必须必SVG文字大;2、它必须有一个ID属性,用于CSS文件通过ID选择器找到该图片。

接下来,我们要创建SVG文件。下面使用个简单的SVG文件,我们命名为knockout.svg。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">

<defs>

<mask id="mask">

<text x="0" y="100" id="knockout" fill="white" style="font-size:120pxfont-family: Blue Highway, Arial Black, sans-serif">KNOCKOUT</text>

</mask>

</defs>

<use xlink:href="#knockout"/>

</svg>

来观察<text>元素,x和y值是文字的偏移量,fill是文字的颜色。字体的书写方式就和书写CSS的方式是一样的。

在文本外面使用<defs>和<mask>来进行包裹,这表示我们将使用文字来作为遮罩使用(注意:mask标签有一个id)。最后一行代码<use xlink:href="#knockout"/>要指向文本的ID。

最后,通过CSS来制作SVG文字模板遮罩效果:

#knockout-text {

mask: url(knockout.svg#mask)

-webkit-mask-image: url(knockout.svg)}

}

mask属性在Firefox、Opera 和 IE中使用,用于指向knockout.svg文件的<mask id="mask">。Chrome 和 Safari需要第二行代码,来执行相同的动作。

通过上面的制作,你会发现,你现在得到的只是一张图片。没错,你没有做错!在页面中你看不到"KNOCKOUT"文字,但你你可以拖动这个SVG图片到桌面上,它将保存为一个图片文件,打开这个图片你就可以看到遮罩效果了。在后面的而文章中,我们将教你通过修改SVG文件来制作各种遮罩效果,这种效率要比在photoshop中制作同样效果要快得多。

概念上两者非常容易混淆,但完成的效果是一样的,需记住哪个是无色抠取,哪个是黑色抠除。

再者还有个裁剪,只是做裁切,没有对半透明情况的处理。

这样一说就知道,本文阅读起来可能是会有点乱的。

那么前端方法中 如何实现 ,又各 有哪些应用场景 呢?

比较容易搜到的,也是用得最多的,强得一批。

现在是只有遮罩功能的, mask 指定的是下层形状,本元素及其所有子级为上层图案。

<small>以后的发展可能会通过 mask-composite 实现蒙版,小期待一下吧。</small>

遮罩嘛,即有色就显示,无色则隐藏。

rgba(0,0,0,0)、tranpsarent,png 图片中的透明 或 无色 就抠除。

mask 和 background 的设置非常类似,也可以缩写:

mask-image / mask-repeat / mask-position / mask-size / mask-origin / mask-clip

mask-image 也和 background-image 一样支持 url, gradient,image-set,element 等等。

举几个栗子:

至于剩下的 mask-mode / mask-type / mask-composite 浏览器支持还不太妙,暂可以不考虑。

但功能上却是强大,需要更多了解还请自行翻阅 文档 。

PS: 兼容性 方面虽然一片红,IE 什么的抛弃掉,实验下来其实还不错。写上 -webkit-mask 基本都能用。

PPS:firefox 中动画时 mask-size 小于 100% 会不显示,但定值可以,原因不知。

个人有点莫名的习惯,不管做什么效果,都会往 SVG 上想一想,可能源于它强大的功能吧。

相比 html+css 多了很多特性,如路径/线条的设置/诸多滤镜/视图限定等;

相比 canvas 多了一些 dom 上的便捷 *** 作,如事件。

SVG 可以用 mask 来实现 蒙版 ,用 clipPath 来实现 裁剪 (下文会讲)。

区分一下,svg mask 为蒙版,白色为显示;css mask 为遮罩,有色为显示。

mask 蒙版内可以包裹透明图片或文字。

但使用蒙版的元素,却莫名不能是 image,这就很完蛋呀,有待研究。

如果 css 的 mask 适用于图片和渐变等的话,那 background-clip:text 就适用于文字。

字面意思,将背景裁切成文字范围。

另外,background-clip 还可以设 content-box,也是不错的功能,

默认 padding-box,border-box 有上边框不被修改的 BUG。

注: 兼容性 上,明文规定要加 -webkit-。顺便抛弃 IE。

很多文章误以为是 text-fill-color 实现了遮罩功能,其实是 background-clip:text 呀!

clip 在 canvas 中本来的作用是切一块画布独立出来。

拿来做遮罩效果也是可以的,但并非真的遮罩,只是裁剪,因为它不是按有色无色来判断显示的。

还可以用 beginPath, lineTo 等线条 *** 作来形成图形。

注:fillRect 和 strokeRect 是无法被切出来的,要用 rect。

注:为了避免影响其他地方,用 save 和 restore 包起来就行了。

注:文字遮罩用 clip 是无法实现的。

修改 canvas 的渲染规则。比如后写的盖住前面的,改成后写的放到低层之类的。

这些规则中有一个 source-in,就能实现 遮罩 (按黑白色来判断显隐)。

如果你用的 strokeRect 和 fillText 那绘制出来的也是相应效果哟。

如果前者是半透明的,覆盖的后者渲染出来也会是半透明的。

如果前者是半透明的 PNG 图片,覆盖的后者出来的也会是半透明,强无敌。

注:globalCompositeOperation 的默认值是 source-over,用完了别忘了改回来,不然会影响后续 *** 作。

全部规则效果一览: https://foreverz133.github.io/demos/single/globalCompositeOperation.html

其中有一些可以拿出来提一下,挺好玩的。

source-in:交叉的部分渲染后者

destination-in:交叉的部分渲染前者

destination-out:去掉交叉的部分

destination-over:后者放至下层

主要还是以裁剪为主,裁剪当然是不会根据形状的颜色什么的来判断显隐的咯。

css 的 clip-path 是老版属性 clip 的改良版,clip 必须绝对定位,且只有矩形还只能 px。

clip-path 则支持方形/圆形/椭圆形/多边形,单位也更丰富。

我觉得 clip-path 和 border-radius 一样,改个图片或者盒子的样式又方便又爽。

但也不一样,因为是裁剪,像 border 呀子级内容呀什么的也是会被剪掉的,hover 也还是原来的尺寸。

比如盖一层镂空的五角星显示背景色呀,盖一层镂空的字呀什么的

假 DEMO: https://foreverz133.github.io/demos/single/star.html

这应该就是名副其实的遮挡层了吧,与本文其实毫无关系。

但可能你会在你不了解 mask 或需要兼容时用到。

例子: http://www.zhangxinxu.com/wordpress/2016/03/better-black-mask-guide-overlay-method/

除此之外,radial-gradient 可以完成部分类似功能,比如圆形的镂空,位置和大小设置相较也更方便。

shape-outside 仅能算作是高级版 float 扩展,也与本文毫无关系。

只是因为既然写了 clip-path 那 shape-outside 就提一下,避免有理解错误。

注:shape-outside 得是浮动元素时才有效。

注:它能设的值和 clip-path 基本一致

它并不会改变本身什么东西,形状不会变,border 等也还是原来的样子,还得结合 clip-path 来用。

它只是让其他与其贴边的元素有了一个不一样的贴边效果。

PS: 兼容性 吧,怎么说呢,回退到方形影响应该不大。

虽然 clip-path 又不像 border-radius 可以加边框阴影什么的,但其实 polygon 多边形可以有高级玩法,

比如: https://codepen.io/airen/pen/VPKQxb

文档 显示以后会支持 url 和 element 等,那就很方便了呀。顺便再期待一下 shape-inside 的出现。

你思考一下 css 的 mask / background-clip / clip-path 和 shape-outside 的使用场景,这其实很有意思。

遮罩是有色的部分显示图案,蒙版是白色的部分显示图案,裁剪只是裁成这个形状,三者的实际妙用在本文中并没有深入书写,仅算是梳理其功能和明确其区别。

还请大佬们多多分享此方面的巧妙案例咯,让小弟也开开眼。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11613379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存