网上已经有很多讲解ps的图层混合模式,有些不详细甚至是错误的,参考网上给出的公式及其自己在验证推倒的,给出27种的混合模式算法公式。也许存在一定的错误性,毕竟没有官方给出公式,只能说以供参考吧。 只考虑二层,图像是RGB,A是基色,B是混合色。只有B层存在混合模式。C是结果色。 Min函数代表取最小值,Max函数代表取最大值,Abs

1》基础型

主要利用图层的不透明度及图像填充值来控制下层的图像,达到与底色溶解在一起的效果

一、正常(normal)

C[i]=B[i];

二、溶解(Dissolve)

这不是简单的计算公式,需要进行多次函数返回。

按照不透明度的大小来确定颗粒的数量,两数值成正比。

2》降暗型

主要是通过滤除图像中的亮调图像,从而达到使图像变暗的目的

三、变暗(Darken)

C[i]=Min(A[i],B[i]);

四、正片叠加(Multiply)

C[i]=B[i]*(A[i]/);

五、颜色加深(Color Burn)

C[i]={B[i]==  ? B[i] : Max(, Max(, ( - (( - A[i]) <<  ) / B[i])))};  

六、线性加深(Liner Burn)

C[i]={(A[i] + B[i] < ) ?  : (A[i] + B[i] - )};

七、 深色(Darken Color )

当前图层与下方图层相比,颜色深(RGB总和较小)的显现出来,颜色浅的就被隐藏。

3》提亮型

此类型的图层混合模式与降暗型混合模式刚好相反,它通过滤除图像中的暗调信息,达到图像变亮的目的

八、 变亮(lighten)

C[i]={(B[i] > A[i]) ? B[i] : A[i]};

九、 滤色(Screen)

C[i]={ - ((( - A[i]) * ( - B[i])) >> )};

十、颜色减淡(Color Dodge)

c={(B== ) ?B : Min(, ((A<<  ) / ( - B)))}

十一、 线性减淡(也称“添加” 英文名字Add)

C[i]=Min(, (A[i] + B[i]))

十二、   浅色 (lighten Color)

当前图层与下方图层相比,颜色浅(RGB总和较小)的显现出来,颜色深的就被隐藏。

4》融合型

主要用于不同程度的融合图像
十三、  
叠加(Overlay)

C[i]={(B[i] < ) ? ( * A[i] * B[i] / ) : ( -  * ( - A[i]) * ( - B[i]) / )};

十四、  柔光(Soft Light)

计算公式:
混合色 <=128:结果色 = 基色 + (2 * 混合色 - 255) * (基色 - 基色 * 基色 / 255) / 255;
混合色 >128: 结果色 = 基色 + (2 * 混合色 - 255) * (Sqrt(基色/255)*255 - 基色)/255。

十五、   强光(HardLight)

C[i]={(A[i] < ) ? ( * A[i] * B[i] / ) : ( -  * ( - A[i]) * ( - B[i]) / )};

十六、 亮光(Vivid light)

C[i]={B[i] <  ?(B[i] ==  ?  * B[i] : Max(, ( - (( - A[i]) <<  ) / ( * B[i])))) : (( * (B[i] - )) ==  ? ( * (B[i] - )) : Min(, ((A[i] <<  ) / ( - ( * (B[i] - )) ))))};

十七、 线性光(Liner Light)

C[i]=Min(, Max(, (B[i] +  * A[i]) - ))

十八、 点光 (Pin Light)

C[i]=Max(, Max( * B[i] - , Min(B[i],  * A[i])))

十九、  实色混合(Hard Mix)

C[i]={(B[i] <  ?(B[i] ==  ?  * B[i] : Max(, ( - (( - A[i]) <<  ) / ( * B[i])))) : (( * (B[i] - )) ==  ? ( * (B[i] - )) : Min(, ((A[i] <<  ) / ( - ( * (B[i] - )) )))))<  ?  : };

5》色异型

主要用于制作各种另类,发色效果

二十、   差值(Difference)

C[i]=Abs(A[i] - B[i])

二十一、 排除(Exclusion)

C[i]= A[i] + B[i] -  * A[i] * B[i] / 

二十二、 减去(Subtract)

C[i]=A[i]-B[i]

二十三、 划分(Divide)

C[i]=(A[i]/B[i])*

6》蒙色型

主要依据上层图像中的颜色信息,不同程度的映衬下面图层上的图像

二十四、 色相(Hue)

使用HSB数值进行计算,保留混合色的H,也就是色相值;S与B(饱和度与明度)使用基色数值。

二十五、 饱和度(Saturation)

与色相模式相似,不过保留的混合色的值是S。

二十六、  明度(Luminosity)

与色相模式相似,不过保留的混合色的值是B。

二十七、 颜色(Color)

与色相模式相似,不过保留的混合色的值是HS。

ps中图层混合模式算法公式的更多相关文章

  1. ps中图层混合模式、多图层叠加、不透明度、填充、图层样式详解

    图像领域中,通过进行一下想法的时候,都要通过用ps看下是不是合理,而ps中图层是必用的一个功能,下面详解一下图层有关的叠加原理. 基本顺序是图层从下往上继续, 先计算图层的填充,再计算样式.最后计算不 ...

  2. PS中图层混合模式的计算方法

    https://zhuanlan.zhihu.com/p/23905865 长久以来一直用中文版本的PS,对于软件中的一些专业名字都是顾名思义,容易误入歧途,但当你真正看到英文版本的名字的时候才有豁然 ...

  3. ps减去图层混合模式

    ps减去图层混合模式 CMYK 1.1.青色作为基色,品红作为混合色(减去混合模式) 红反即青色(绿色+蓝色) - 绿反即品红色(红色+蓝色)= 绿色   公式简化: 绿色 + 蓝色 - 红色 - 蓝 ...

  4. PS中混合模式是什么意思?

      PS中图层混合模式中的溶解,变暗,正片叠底,颜色加深,线性加深,叠加,柔光,亮光,强光,线性光,点光,实色混合,差值,排除,色相,饱和度,颜色,亮度各是什么原理?   Normal 正常模式,也是 ...

  5. 图像滤镜艺术---PS图层混合模式之明度模式

    本文将介绍PS图层混合模式中比較复杂 的"明度"模式的算法原理及代码实现内容. 说到PS的图层混合模式,计算公式都有,详细代码实现也能找到,可是,都没有完整介绍全部图层混合模式的代 ...

  6. 【PS算法理论探讨一】 Photoshop中两个32位图像混合的计算公式(含不透明度和图层混合模式)。

    大家可以在网上搜索相关的主题啊,你可以搜索到一堆,不过似乎没有那一个讲的很全面,我这里抽空整理和测试一下数据,分享给大家. 我们假定有2个32位的图层,图层BG和图层FG,其中图层BG是背景层(位于下 ...

  7. PS图层混合模式实例详解

          PS中的很多概念都和Core Graphics中的概念相通,比如蒙版.路径.裁剪.混合模式等等.如果你对Core Graphics中的混合模式不太理解,阅读本篇文章能让你对Core Gra ...

  8. 【PS算法理论探讨二】 Photoshop中图层样式之 投影样式 算法原理初探讨。

    接下来几篇文章我们将稍微简单的探索下PS中多种图层混合模式的算法内部原理,因为毕竟没有这方面的官方资料,所以很多方面也只是本人自己的探索和实践,有可能和实际的情况有着较大的差异. 在PS的实践中,图层 ...

  9. 【小技巧】在PS中测量图层间的边距

    今天学到了一个小技巧,前端切页面时会很方便,就是测量间距margin的. 在ps中,选中某个图层,然后按住ctrl键,再移动鼠标,就可以出现这个图层距其他元素的边距,这个太方便了.在此记录一下,免的以 ...

随机推荐

  1. Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

    Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  -  ...

  2. Swift - 如何实现字符串的HMAC_SHA1加密

    前段时间有个网友问是否有Swift的HMAC_SHA1算法.这次就专门写篇相关文章进行介绍.要说明HMAC-SHA1,首先要先了解什么是HMAC,什么是SHA. 1,HMAC(散列消息身份验证码:Ha ...

  3. Google C++ style guide——命名约定

    1.通过命名规则 函数命名.变量命名.文件命名应具有描写叙述性. 类型和变量应该是名词,函数名能够用"命令性"动词. 2.文件命名 文件名称所有小写,能够包括下划线(_)或者断线( ...

  4. http异步请求

    1.加载异步请求包文件 2.java代码 package com.example.asynchttp; import org.apache.http.Header; import com.loopj. ...

  5. 3890: [Usaco2015 Jan]Meeting Time( dp )

    简单的拓扑图dp.. A(i, j), B(i, j) 表示从点 i 长度为 j 的两种路径是否存在. 用bitset就行了 时间复杂度O(m) --------------------------- ...

  6. 用c++开发基于tcp协议的文件上传功能

    用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学 ...

  7. hihocoder1302 最长回文子串

    hihocoder1302 最长回文子串 先贴代码 所有的上面的提示已经交代的好清楚了…… #include <iostream> #include <cstring> #in ...

  8. mmc生产运输投资问题

    本题目,有生产,运输和投资,由于能力不能满足需求, 要扩大生产规模.

  9. 用jQuery实现鼠标在table上移动进行样式变化

    1.定义样式 <style type="text/css"> .striped        {            background-color:red;    ...

  10. EasyUI - 后台管理系统 - 登陆模块

    效果: --- --- Html代码: <div id="login"> <p>账户:<input type="text" id= ...