样式效果

http://www.jb51.net/photoshop/104100.html

注释:

1.混合模式的数学计算公式,另外还介绍了不透明度。

2.这些公式仅适用于RGB图像,对于Lab颜色图像而言,这些公式将不再适用。

3.在公式中

A 代表下面图层的颜色值;

B 代表上面图层的颜色值;

C 代表混合图层的颜色值;

d 表示该层的透明度。

1.Opacity 不透明度

  C=d×A+(1-d)×B

相对于不透明度而言,其反义就是透明度。

这两个术语之间的关系就类似于正负之间的关系:100%的不透明度就是0%的透明度。

该混合模式相对来说比较简单,在该混合模式下,

如果两个图层的叠放顺序不一样,其结果也是不一样的(当然50%透明除外)。

该公式也应用于层蒙板,在这种情况下,d代表了蒙板图层中给定位置图层的亮度(d=颜色值/255),

下同,不再叙述。

2.Darken 变暗

   B<=A 则 C=B

   B>=A 则 C=A

该模式通过比较上下层像素后取相对较暗的像素作为输出,

注意,每个不同的颜色通道的像素都是独立的进行比较,色彩值相对较小的作为输出结果。

下层表示叠放次序位于下面的那个图层,

上层表示叠放次序位于上面的那个图层,下同,不再叙述。

3.Lighten 变亮

   B<=A 则 C=A

   B>A 则 C=B

该模式和前面的模式是相似,不同的是取色彩值较大的(也就是较亮的)作为输出结果。

4.Multiply 正片叠底

   C=(A×B)/255

该效果将两层像素的标准色彩值(基于0..1之间)相乘后输出

其效果可以形容成:两个幻灯片叠加在一起然后放映,

透射光需要分别通过这两个幻灯片,从而被削弱了两次。

5.Screen 滤色

   C=255-(A反相×B反相)/255

该模式和上一个模式刚好相反,

上下层像素的标准色彩值反相后相乘后输出,

输出结果比两者的像素值都将要亮

(就好像两台投影机分别对其中一个图层进行投影后,然后投射到同一个屏幕上)。

从右边公式中我们可以看出,如果两个图层反相后,采用Multiply模式混合,

则将和对这两个图层采用 Screen模式混合后反相的结果完全一样。

6.Color Burn 颜色加深

   C=A-(A反相×B反相)/B

该模式和上一个模式刚好相反。

如果上层越暗,则下层获取的光越少,

如果上层为全黑色,则下层越黑,

如果上层为全白色,则根本不会影响下层。

结果最亮的地方不会高于下层的像素值。

7.Color Dodge 颜色减淡

   C=A+(A×B)/B反相

该模式下,上层的亮度决定了下层的暴露程度。

如果上层越亮,下层获取的光越多,也就是越亮。

如果上层是纯黑色,也就是没有亮度,则根本不会影响下层。

如果上层是纯白色,则下层除了像素为255的地方暴露外,

其他地方全部为白色(也就是255,不暴露)。

结果最黑的地方不会低于下层的像素值。

8.Linear Burn 线形加深

   C=A+B-255

如果上下层的像素值之和小于255,输出结果将会是纯黑色。

如果将上层反相,结果将是纯粹的数学减。

9.Linear Dodge 线形减淡

   C=A+B

将上下层的色彩值相加。结果将更亮。

10.Overlay叠加

   A<=128 则 C=(A×B)/255

   A>128 则 C=255-(A反相×B反相)/128

依据下层色彩值的不同,该模式可能是Multiply (正片叠底),也可能是Screen (滤色)模式。

上层决定了下层中间色调偏移的强度。

如果上层为50%灰,则结果将完全为下层像素的值。

如果上层比50%灰暗,则下层的中间色调的将向暗地方偏移,

如果上层比50%灰亮,则下层的中间色调的将向亮地方偏移。

对于上层比50%灰暗,下层中间色调以下的色带变窄(原来为0~2×0.4×0.5,现在为0~2×0.3×0.5),

中间色调以上的色带变宽(原来为2×0.4×0.5~1,现在为2×0.3×0.5~1)。

反之亦然。

11.Hard Light 强光

   B<=128 则 C=(A×B)/128

   B>128 则 C=255-(A反相×B反相)/128

该模式完全相对应于Overlay (叠加)模式下,两个图层进行次序交换的情况。

如过上层的颜色高于50%灰,则下层越亮,反之越暗

12.Soft Light柔光

   B<=128 则 C=(A×B)/128+(A/255)^2×(255-2B)

   B>128 则 C=(A×B反相)/128+sqrt(A/255)×(2B-255)

该模式类似上层以Gamma值范围为2.0到0.5的方式来调制下层的色彩值。

结果将是一个非常柔和的组合。

13.Vivid Light 亮光

   B<=128 则 C=A-A反相×(255-2B)/(2B)

   B>128 则 C=A+A×(2B-255)/(2×B反相)

该模式非常强烈的增加了对比度,特别是在高亮和阴暗处。

可以认为是阴暗处应用Color Burn和高亮处应用Color Dodge。

14.Linear Light 线形光

   C=A+2×B-255

其类似于Linear Burn,只不过是加深了上层的影响力。

15.Pin Light 点光

   B<=128 则 C=Min (A,2B)

   B>128 则 C=Min(A,2B-255)

该模式结果就是导致中间调几乎是不变的下层,

但是两边是Darken(变暗)和Lighten(变亮)模式的组合。

16.Hard Mix 实色混合

   A+B>=255 则 C=255

   A+B<255 则 C=0

该模式导致了最终结果仅包含6种基本颜色,每个通道要么就是0,要么就是255。

17.Difference 差值

   C=|A-B|

上下层色调的绝对值。

该模式主要用于比较两个不同版本的图片。

如果两者完全一样,则结果为全黑。

18.Exclusion 排除

   C=A+B-(A×B)/128

亮的图片区域将导致另一层的反相,很暗的区域则将导致另一层完全没有改变。

19.Hue 色相

   HcScYc =HBSAYA

输出图像的色调为上层,饱和度和亮度保持为下层。

对于灰色上层,结果为去色的下层。

20.Saturation 饱和度

   HcScYc =HASBYA

输出图像的饱和度为上层,色调和亮度保持为下层。

21.Color 颜色

   HcScYc =HBSBYA

输出图像的亮度为下层,色调和饱和度保持为上层。

22.Luminosity 亮度

   HcScYc =HASAYB

输出图像的亮度为上层,色调和饱和度保持为下层。

23.Dissolve 溶解

该模式根本不是真正的溶解,因此并不是适合Dissolve(溶解)这个称谓,其表现仅仅和Normal(正常)类似。

其从上层中随机抽取一些像素作为透明,使其可以看到下层,

随着上层透明度越低,可看到的下层区域越多。

如果上层完全不透明,则效果和Normal(正常)不会有任何不同。

ps图层混合计算公式的更多相关文章

  1. OpenCV——PS 图层混合算法(一)

    详细的算法原理能够參考 PS图层混合算法之中的一个(不透明度,正片叠底,颜色加深,颜色减淡) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #de ...

  2. OpenCV——PS 图层混合算法 (三)

    具体的算法原理可以参考 PS图层混合算法之三(滤色, 叠加, 柔光, 强光) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ ...

  3. OpenCV——PS 图层混合算法 (二)

    具体的算法原理可以参考 PS图层混合算法之二(线性加深,线性减淡,变亮,变暗) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define PS ...

  4. OpenCV——PS图层混合算法(六)

    具体的算法原理可以参考: PS图层混合算法之六(差值,溶解, 排除) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGO ...

  5. OpenCV——PS 图层混合算法 (四)

    具体的算法原理可以参考 PS图层混合算法之四(亮光, 点光, 线性光, 实色混合) // PS_Algorithm.h #ifndef PS_ALGORITHM_H_INCLUDED #define ...

  6. Python: PS 图层混合算法汇总

    本文用 Python 实现了PS 中的图层混合算法,把很多常见的图层混合算法都汇总到了一起,比起以前写的算法,就是用矩阵运算代替了很耗时的for 循环,运行效率有所提升.具体的代码如下: import ...

  7. PS图层混合算法之六(差值,溶解, 排除)

    差值模式: 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值.与白色混合将使底色反相:与黑色混合则不产生变化. 排除模式可生成和差值模式相似的效果,但比差值模 ...

  8. PS图层混合算法之三(滤色, 叠加, 柔光, 强光)

    滤色模式: 作用结果和正片叠底刚好相反,它是将两个颜色的互补色的像素值相乘,然后除以255得到的最终色的像素值.通常执行滤色模式后的颜色都较浅.任何颜色和黑色执行滤色,原色不受影响;任何颜色和白色执行 ...

  9. PS图层混合算法之二(线性加深,线性减淡,变亮,变暗)

    线性加深模式: 查看每个通道的颜色信息,通过降低"亮度"使底色的颜色变暗来反映绘图色,和白色混合没变化. Linear Burn 线形加深 C=A+B-1 如果上下层的像素值之和小 ...

随机推荐

  1. import org.marker.weixin.DefaultSession; import org.marker.weixin.HandleMessageAdapter; import org.marker.weixin.MySecurity; import org.marker.weixin.msg.*;

    需要以下微信包可以添加我的微信公众号 回复“微信api”即可得到jar链接,以及maven添加本地jar方法,以及更改后的源代码 import org.marker.weixin.DefaultSes ...

  2. HDU - 1260 Tickets 【DP】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1260 题意 有N个人来买电影票 因为售票机的限制 可以同时 卖一张票 也可以同时卖两张 卖两张的话 两 ...

  3. koa-bodyparser返回413状态码的问题

    413 Request Entity Too Large(请求实体太大) 数日前,我用 node.js 写的一个日志服务抛出了这个状态码-- 自己写的服务抛出了一个自己都不认识的状态码,这是最气的!( ...

  4. hadoop —— MapReduce例子 (数据排序)

    参考:http://eric-gcm.iteye.com/blog/1807468 file1.txt: 2 32 654 32 15 756 65223 file2.txt: 5956 22 650 ...

  5. JAVA- 成员变量与局部变量的区别

    成员变量与局部变量的区别 成员变量是定义在方法之外,类之内的局部变量是定义在方法之内的. 作用上的区别: 1.成员变量的作用是用于描述一类事物的公共属性的. 2.局部变量的作用就是提供一个变量给方法内 ...

  6. linux命令学习笔记:cut详解

    cut命令从文件的每一行剪切字节.字符和字段并将它们写至标准输出.它是以文件的每一行作为处理对象的. 命令格式:cut [选项] [范围] 文件.选项用来指定单位(字节.字符还是字段),范围指定选项的 ...

  7. Sed在匹配行前后加入一行

    a 追加内容 sed ‘/匹配词/a\要加入的内容’ example.file(将内容追加到匹配的目标行的下一行位置)i 插入内容 sed ‘/匹配词/i\要加入的内容’ example.file 将 ...

  8. python 之闭包,装饰器,生成器

    一.可迭代的对象(也就是可以用for循环,generator 是生成器的意思) 怎么判断是否可迭代呢?通俗的方法建立一个for循环 高大上的方法是: In [40]: from collections ...

  9. 网络最大流dinic模板

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> using ...

  10. codevs2189数字三角形w——最优性转化

    题目:http://codevs.cn/problem/2189/ 通过增加一维,将最优性转化为可行性. 代码如下: #include<iostream> #include<cstd ...