• ps中图层混合模式算法公式


    网上已经有很多讲解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]/255);

    五、颜色加深(Color Burn)  

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

    六、线性加深(Liner Burn) 

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

    七、 深色(Darken Color )

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


    3》提亮型

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

    八、 变亮(lighten)

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

    九、 滤色(Screen)

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

    十、颜色减淡(Color Dodge) 

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

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

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

    十二、   浅色 (lighten Color)

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

    4》融合型

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

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

    十四、  柔光(Soft Light)

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

    十五、   强光(HardLight)

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

    十六、 亮光(Vivid light)

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

    十七、 线性光(Liner Light)

    C[i]=Min(255, Max(0, (B[i] + 2 * A[i]) - 1))

    十八、 点光 (Pin Light)

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

    十九、  实色混合(Hard Mix)

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

    5》色异型

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

    二十、   差值(Difference)

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

    二十一、 排除(Exclusion)

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

    二十二、 减去(Subtract)

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

    二十三、 划分(Divide)

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

     6》蒙色型

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

    二十四、 色相(Hue)

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

    二十五、 饱和度(Saturation)

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

    二十六、  明度(Luminosity)

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

    二十七、 颜色(Color)

    与色相模式相似,不过保留的混合色的值是HS。
  • 相关阅读:
    GUI编程笔记(java)02:java.awt和java.swing包的区别
    GUI编程笔记(java)01:GUI和CLI
    Android(java)学习笔记138:三重for循环的优化(Java面试题)
    Android(java)学习笔记137:ListView编写步骤(重点)
    Android(java)学习笔记136:利用谷歌API对数据库增删改查(推荐使用)
    Android(java)学习笔记135:SQLite数据库(表)的创建 以及 SQLite数据库的升级
    spring ioc 注解配置
    代码简洁之道与重构
    快速定位到方法的被调用处
    spring ioc xml配置
  • 原文地址:https://www.cnblogs.com/lanye/p/3425271.html
Copyright © 2020-2023  润新知