zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    Verilog非阻塞赋值的仿真/综合问题 (Nonblocking Assignments in Verilog Synthesis)上
    异步FIFO结构及FPGA设计 跨时钟域设计
    FPGA管脚分配需要考虑的因素
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 上篇)
    An Introduction to Delta Sigma Converters (DeltaSigma转换器 下篇)
    中国通信简史 (下)
    谈谈德国大学的电子专业
    中国通信简史 (上)
    Verilog学习笔记
    Verilog非阻塞赋值的仿真/综合问题(Nonblocking Assignments in Verilog Synthesis) 下
  • 原文地址:https://www.cnblogs.com/lanye/p/3425271.html
Copyright © 2011-2022 走看看