Photoshop理论:另外一种角度看图层混合模式
源地址:http://www.missyuan.com/thread-687724-1-4.html
1、我将一个色阶看成是一个由亮部和暗部组成的这么一个元素,亮部是我们看的见的,暗部是影响亮部的,有点作用力与反作用的关系,你弱他就强,你强他就弱,他们之间的关系就是相加和为1(我这里把二者定位小数),之所以这样定义便于后面的理解,因为这样一个光是有最高值的255,要是没有最高值,无限亮,我还真不好定义了
2、还有一点我要说明就是填充不透明度对不同混合模式也是有两种作用,一种作为控制度(下面会提到),一种还是以填充不透明度的原始作用,即反应原本图层的不透明度——在没有样式的情况下和不透明度是一样的作用,这种作用是因为要把混合层看成是一个图层来和基层混合,而不是度来和下面混合,主要有变暗,变亮和颜色模式。
3,给出一个色阶模拟器,当然你也可以自己做,这是联盟论坛大神们智慧的结晶
4,灰色颜色的字是我对运算方式的理解,因为不善算数,所以居然也理解了一番,可以略过123.rar (6.87 KB)
引用:
我的理解:填充不透明度对于混合模式来说是对混合层的影响值的一个控制度。
正片叠底
用混合层的暗部(1-A),来影响基层的亮部(B),影响值就是(1-A)
当影响值一定的时候,n作为填充不透明度控制其大小,影响值越小,越没有变化 C=B ;影响值越大,越趋近最后的定义公式C=AB
(1,C是结果色,B是基层,A是混合层。2,定义公式可以去网上找,找那种C归为单位1的那种即用百分数表示值。)
公式 C = [ 1 - n(1-A) ] * B
n越大即为100%的填充不透明度,公式趋近最后的公式C=AB
n越小即为0的时候,公式趋近C=B
从公式我们发现
1,要是混合色去影响下层的亮部得出的结果也是应该为亮部
2,n主要是用来作为影响度(1-A)or A(后面会有)的控制度我们再来一个不透明度(t)的公式,即不包含填充不透明的影响(n=1)
C= t * (A*B) + (1-t) * B
可以发现这两个公式化简后是相同的,这也是为什么动混合层的不透明度或是填充不透明度的滑块,他们的变化是一样的。这样你还可以把填充不透明和不透明放到一起作为一个最后的公式。
引用:
滤色
用混合层的亮部A来影响基层的暗部(1-B)
当影响值一定的时候,n作为填充不透明度控制其大小,影响值越小,越没有变化1- C=1-B ;影响值越大,越趋近最后的定义公式
1-C=(1-A)*(1-B)
公式 1-C = (1- n*A)*(1-B)
n越大,越趋近最后定义公式
n越小,为0的时候,1-C=1-B
从公式我们发现
1,影响的是下层的暗度(1-B),得出的结果也应为暗度1-C
2,你也可以只计算不透明度的公式来和此公式比对,会发现二者一样,也就是为什么模拟器二者的影响走位是一样的。
引用:
颜色加深
用暗部(1-A)来影响暗部(1-B)
(1-A)的取值范围[0,1],加深就是影响度取值越大的时候,颜色越黑,是一个倍数关系,在[0,1]这个范围内要产生倍数,需要用一个除法的算式。影响度越大,越趋近最后的公式;影响度越小,越无变化即1-C=1-B
公式: 1
1-C = —————————————— * (1-B)
1-n(1-A)
所表现的出来的东西同上面的一样,但是这时它和不透明度的影响公式就不同了,这也是为什么调节两个不透明度,变化的曲线不一样的原因,可以试试。
引用:
颜色减淡
用亮部A,来影响下层的亮部B,也是只能用除法,影响度越大,越接近最后的公式,影响度越小,无变化,最后的C=B
公式: 1
C= —————————————————————— * B
1 - nA同样的不透明度和填充不透明度最后的运算公式不一样,变化规律也不一样
引用:
为什么分母中要有个 (1- )?直接用亮部除以亮部,暗部除以暗部不行吗?分母其实可以理解为偏离基层B or(1-B)的一个值,这个值由n和混合层共同作用,如果没有混合层作用的话,本来应该是C= (1/1)B, 加入A的影响,A的影响越大,分母越小,最后的结果越大。
引用:
线性加深
用混合色的暗部去影响基层的暗部,用相加的关系
公式 :1-C = n (1-A)+ (1-B)
引用:
线性减淡
用混合色的亮部去影响基层的亮部,也用相加的关系
公式 :C = n A+ B
有了上面公式的理解,这两个公式就没有什么难理解的了
引用:
变亮和变暗这两种模式就是我前面说的把混合层此时看做是一个层了,一个彻彻底底的层,不在作为幕后工作的影响者,和基层现在有同等地位了,需要哪块就要哪块,谁也不要看不起谁,这个时候填充不透明度和不透明度的意义是相同的。
引用:
到了叠加类的了,叠加类的混合模式是有影响范围的,都是以128为界的,其实要是理解这些公式,很好办,把一个模式分成两个模式,最后再合并就可以了
引用:
叠加和强光
有人说这两个模式不同,只有在同源混合的时候他们的曲线才是相同的,反相影响或是单色影响就不一样,他们所依据的东西也不一样,这些都没错。但是我上面说了完全可以把一个模式拆成两个,只是最后是依据他们的影响范围进行合并起来的方式不同,但是只有一句话:他们还是需要混合层这个调整度A or(1-A)来调整基层。
他们是以正片叠底和滤色的方式来影响基层的,只是多了一个倍数2,但是这个倍数2是影响的谁?假如是小于128的部分,影响的是最后A*B的结果吗,单纯的2*AB吗?
我们从128这个分界点考虑,以强光模式说,如果在范围内使用的是正片叠底公式的话,128是个不作用点,他对于正片叠底模式来说128映射的就是原先的255,而0映射的就是0,他们之间的数映射关系是什么呢?(因为是混合层产生作用,这里说的值都是混合层的值)
叠底部分 128 (即 0.5) ————→ 255(即 1) 滤色部分 128 (即 0.5) ————→ 0A(强)————→ A(正)? A(强)————→ A(滤)?
0 ————→ 0 255(即1)————→ 255(即1)
A(正)= 2*A强 A(滤)= 2*(A强-0.5)
分别带入正片叠底公式 C = [ 1 - n(1 - 2*A) ] * B
和滤色公式 1-C = [ 1 - n*2*(A-0.5) ]*(1-B)通过这两个公式,你应该了解,2作用的是谁,还有就是n作用的位置
引用:
叠加模式
说一句叠加模式,和强光模式的公式一样,就是公式的作用域不同,强光作用全体基层,但是根据强光的值,作用方法不一样。叠加只作用于一半色阶,基层各占一半,但是你会发现,本来到了混合层的128值,左边的正片叠底部分不应该在向上加了,因为正片叠底的最大值就是基层自己,但是叠加模式却还会往上加,这应该可能算是被另一半连累的缘故吧,到底怎么解释这里我也说不清楚。![]()
![]()
叠加模式 强光模式
引用:
柔光模式
说道柔光模式,先说一个概念,那就是中间值,给出中间值的公式是
Y(变化后色阶百分比)=X(1/n)(指数)再来说柔光模式,柔光模式就是利用上层的影响值(暗部或亮部)来影响下层的原始色阶B到中间值的一个调节,先给出公式
B-C = n* (1-2A)* (B-B2) (A<0.5)
C-B = n* (2A-1)* (厂B - B) (A>0.5)
1-2A和2A-1 也是由于像强光模式那样映射的关系来映射的。
这个公式可以理解为B到B2 或是 厂B 的距离被A来控制,也可以理解为亮度和暗度,但是这里边亮度和暗度的总和就不是1而是B了,所以第一种方式好理解,N还是控制影响度的控制度。
引用:
强光
有了以上的叠加类模式的意义,强光就很好理解了,以A层的128为分界点进行B层颜色加深和减淡的控制,
颜色加深 128(0.5)(无作用点)——→ 255(1) 颜色减淡 128(0.5)(无作用点)——→ 0
部分 A(亮) ——→ A(加深) A(亮)——→ A(减淡)
0——→ 0 255(1)——→255 (1)
2A(亮)=A(加深) 2(A亮-0.5)=A(减淡)
带入公式 1
1-C = ——————————————— *(1-B) (A<0.5)
1 - n * (1 -2A)
1
以及 C = ———————————————— *B (A>0.5)
1 - n*2*(A-0.5)
引用:
线性光
根据映射和线性公式得到
1-C = n*(1-2A)+(1-B) A<0.5
C=n*2*(A-0.5)+ B A>0.5
引用:
点光
和变亮变暗一样,先比较在应用填充不透明度
引用:
颜色类混合模式
这类模式相同于变亮变暗,作为一个单独图层,与B层进行取舍,同样是先进行混合,最后的结果在进行不透明度的计算,与不透明度的意义相同。
引用:
差值
要是理解为单独的图层和B层进行比对,那么n的意义就是不透明度了,但是从公式来分析并不是这样,其实也要理解为用A层来控制B层的色阶。
公式=丨nA-B丨
而不透明度的公式是
C=t*丨A-B丨+(1-t)*B
y有待编辑,委婉戴旭.....
Photoshop理论:另外一种角度看图层混合模式的更多相关文章
- 【PS算法理论探讨一】 Photoshop中两个32位图像混合的计算公式(含不透明度和图层混合模式)。
大家可以在网上搜索相关的主题啊,你可以搜索到一堆,不过似乎没有那一个讲的很全面,我这里抽空整理和测试一下数据,分享给大家. 我们假定有2个32位的图层,图层BG和图层FG,其中图层BG是背景层(位于下 ...
- 对博弈活动中蕴含的信息论原理的讨论,以及从熵角度看不同词素抽象方式在WEBSHELL文本检测中的效果区别
1. 从赛马说起 0x1:赛马问题场景介绍 假设在一场赛马中有m匹马参赛,令第i匹参赛马获胜的概率为pi,如果第i匹马获胜,那么机会收益为oi比1,即在第i匹马上每投资一美元,如果赢了,会得到oi美元 ...
- 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用
深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...
- 另一个角度看元宇宙与RPA:人工世界、平行员工与RPA
另一个角度看元宇宙与RPA:人工世界.平行员工与RPA 从元宇宙到平行员工,人工世界推动的虚实分工利好RPA 机器人是铁打营盘人类是流水兵,未来元宇宙的虚实分工RPA机会巨大 文/王吉伟 元宇宙是平行 ...
- Android IOS WebRTC 音视频开发总结(四八)-- 从商业和技术的角度看视频行业的机会
本文主要从不同角度介绍视频行业的机会,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处,欢迎关注个人微信公众号blacker ----------------------------- ...
- Photoshop图层混合模式计算公式大全(转)
混合模式可以将两个图层的色彩值紧密结合在一起,从而创造出大量的效果.在这些效果的背后实际是一些简单的数学公式在起作用.下面我将介绍photoshop cs2中所有混合模式的数学计算公式.另外还介绍了不 ...
- 【阿里云产品公测】以开发者角度看ACE服务『ACE应用构建指南』
作者:阿里云用户mr_wid ,z)NKt# @I6A9do 如果感觉该评测对您有所帮助, 欢迎投票给本文: UO<claV RsfTUb)< 投票标题: 28.[阿里云 ...
- [置顶] 从引爆点的角度看360随身wifi的发展
从引爆点的角度看360随身wifi的发展 不到一个月的时间,随身wifi预定量就数百万.它的引爆点在哪里,为什么相同的产品这么多它却能火起来,通过对随身wifi的了解和我知识层面分析,主要是因为随身w ...
- 从源码的角度看 React JS 中批量更新 State 的策略(下)
这篇文章我们继续从源码的角度学习 React JS 中的批量更新 State 的策略,供我们继续深入学习研究 React 之用. 前置文章列表 深入理解 React JS 中的 setState 从源 ...
随机推荐
- BZOJ 2750: [HAOI2012]Road( 最短路 )
对于每个点都跑最短路, 然后我们得到了个DAG, 在这DAG上更新每条边的答案. 考虑e(u, v)∈DAG对答案的贡献: 假设从S到u得路径数为A[u], 从v出发到达任意点的路径数为B[v], ...
- Microsoft.AspNetCore.Routing路由
Microsoft.AspNetCore.Routing路由 这篇随笔讲讲路由功能,主要内容在项目Microsoft.AspNetCore.Routing中,可以在GitHub上找到,Routing项 ...
- 使用css3写一朵云
- 【milonga】什么意思_英语milonga在线翻译_有道词典
[milonga]什么意思_英语milonga在线翻译_有道词典 milonga 网络释义英英释义 米隆加 本届探戈艺术节表演最受观众欢迎的是热情欢快的米隆加(Milonga)舞曲探戈,为了吸引年 ...
- UVA 322 ships (POJ 1138)
题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- QT中的pro文件的编写
原地址:http://blog.csdn.net/fjb2080/article/details/4833666 我们在编译QT的工程的时候,一般都会让qmake自动生成,但有时我们需要定制我们的工程 ...
- UVA 10201 Adventures in Moving - Part IV(dp)
Problem A: Adventures in Moving - Part IV To help you move from Waterloo to the big city, you are co ...
- [置顶] java Gui 键盘监听事件
简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...
- JAVA中字符串比較equals()和equalsIgnoreCase()的差别
.使用equals( )方法比較两个字符串是否相等.它具有例如以下的一般形式: boolean equals(Object str) 这里str是一个用来与调用字符串(String)对象做比較的字符串 ...
- C#中Base64之编码,解码方法
原文:C#中Base64之编码,解码方法 1.base64 to string string strPath = "aHR0cDovLzIwMy44MS4yOS40Njo1NTU3L1 ...