前言:
眼前各位老铁们对“rgb颜色混合算法有哪些”大概比较关怀,姐妹们都需要剖析一些“rgb颜色混合算法有哪些”的相关文章。那么小编同时在网摘上汇集了一些关于“rgb颜色混合算法有哪些””的相关资讯,希望我们能喜欢,我们快快来了解一下吧!这一篇主要是续上篇已讲的12种混合模式,这篇将继续把剩余的3大块15种混合模式讲完。
上篇已经将正常混合模式,变暗混合模式,变亮混合模式等三大块讲完了,这篇讲对比混合模式,差异混合模式,颜色混合模式三大块内容。
所有的说明和上篇一样,默认均基于图层100%不透明度的情况下。
混合层由黑白、浅色谱、深色谱以及色谱四个渐变色谱组成,便于查看不同混合模式的效果。
第四大块、对比混合模式
这大块的混合模式是变暗混合模式和变亮混合模式之间的组合。通过颜色对比来判断应用变暗还是变亮的混合模式,并组合应用。
对比并判断颜色是否深于50%灰色;(这个颜色对比是除了叠加,都是以混合层来对比;而叠加模式是以底层来对比)
如果颜色深于50%灰色,则应用变暗的混合模式;如果颜色浅于50%灰色,则应用增亮的混合模式。
除实色混合外,这一大块中的所有混合模式均为50%灰色透明。
叠加
叠加是也是比较常用的混合模式之一。它是正片叠底和滤色的组合。叠加混合模式,底层的颜色轻于50%灰色的部分,使用半强度的滤色混合模式;而底层的颜色深于50%灰色的部分,使用半强度的乘法混合模式。50%灰色本身变为透明。当然“半强度”并是指不透明度为50%。
计算公式:
若底色的R<=128;
结果色的R=混合色的R*底色的R/128;
若底色的R>128;
结果色的R=255-(255-混合色的R)*(255-底色的R)/128。
若底色的G<=128;
结果色的G=混合色的G*底色的G/128;
若底色的G>128;
结果色的G=255-(255-混合色的G)*(255-底色的G)/128。
若底色的B<=128;
结果色的B=混合色的B*底色的B/128;
若底色的B>128;
结果色的B=255-(255-混合色的B)*(255-底色的B)/128。
最后得到的RGB值就是结果色。
柔光
柔光比较像叠加的柔和版。但它是通过判断混合层的亮度值来选择变暗或变亮的混合效果。
计算公式:
若混合色的B<=128;
结果色的B=底色的B+(2*混合色的B-255)*(底色的B-底色的B*底色的B/255)/255;
若混合色的B>128;
结果色的B=底色的B+(2*混合色的B-255)*(sqrt(底色的B/255)*255-底色的B)/255。
若混合色的G<=128;
结果色的G=底色的G+(2*混合色的G-255)*(底色的G-底色的G*底色的G/255)/255;
若混合色的G>128;
结果色的G=底色的G+(2*混合色的G-255)*(sqrt(底色的G/255)*255-底色的G)/255。
若混合色的R<=128;
结果色的R=底色的R+(2*混合色的R-255)*(底色的R-底色的R*底色的R/255)/255;
若混合色的R>128;
结果色的R=底色的R+(2*混合色的R-255)*(sqrt(底色的R/255)*255-底色的R)/255。
最后得到的RGB值就是结果色。
强光
强光也是用混合层的亮度值判断正片叠底和滤色的组合使用。
强光和叠加的判断很相似,区别在于他是基于混合层判断,而叠加是基于底层判断。
计算公式:
若混合色的R<=128;
结果色的R=混合色的R*底色的R/128;
若混合色的R>128;
结果色的R=255-(255-混合色的R)*(255-底色的R)/128。
若混合色的G<=128;
结果色的G=混合色的G*底色的G/128;
若混合色的G>128;
结果色的G=255-(255-混合色的G)*(255-底色的G)/128。
若混合色的B<=128;
结果色的B=混合色的B*底色的B/128;
若混合色的B>128;
结果色的B=255-(255-混合色的B)*(255-底色的B)/128。
最后得到的RGB值就是结果色。
亮光
亮光应该算是强光的加强版,暗的更暗,亮的更亮,饱和度更高。
一般来说这个效果会太过强烈,还是要调整不透明度。
计算公式:
若混合色的R<=128;
结果色的R=255-(255-底色的R)/(2*混合色的R)*255;
若混合色的R>128;
结果色的R=底色的R/(2*(255-混合色的R))*255。
若混合色的G<=128;
结果色的G=255-(255-底色的G)/(2*混合色的G)*255;
若混合色的G>128;
结果色的G=底色的G/(2*(255-混合色的G))*255。
若混合色的B<=128;
结果色的B=255-(255-底色的B)/(2*混合色的B)*255;
若混合色的B>128;
结果色的B=底色的B/(2*(255-混合色的B))*255。
最后得到的RGB值就是结果色。
线性光
线性光,是在较亮的像素上使用线性减淡混合,而在较暗的像素上使用线性加深混合,基于混合层的像素。
效果相当于线性加深模式的混合色加强版,也是比较强烈的色彩变换,多半也是需要调整不透明度的。
计算公式:
结果色的B=2*混合色的B+底色的B-255;
结果色的G=2*混合色的G+底色的G-255;
结果色的R=2*混合色的R+底色的R-255;
得到的RGB值就是结果色。
同样的,任何一个值都不会超过255,计算结果若大于255,就等于255;任何一个值也不会为负数,计算结果若为负数,则等于0。
点光
点光是一种极端混合模式,应用的是变暗和变亮混合模式的组合。根据底层颜色的亮部和暗部,会产生一些斑块或斑点。但是中间色调会基本保持底层原色。
计算公式:
若混合色的R<=128;
结果色的R=Min(底色的R,2*混合色的R);
若混合色的R>128;
结果色的R=Min(底色的R,2*混合色的R-255)。
若混合色的G<=128;
结果色的G=Min(底色的G,2*混合色的G);
若混合色的G>128;
结果色的G=Min(底色的G,2*混合色的G-255)。
若混合色的B<=128;
结果色的B=Min(底色的B,2*混合色的B);
若混合色的B>128;
结果色的B=Min(底色的B,2*混合色的B-255)。
得到的RGB颜色就是结果色。
实色混合
它通过将混合层中的每个RGB通道的值,加上相应底层的RGB通道的值,以此进行混合得到结果色;
其混合的结果只会是白色,黑色,以及红色,绿色,蓝色,青色,洋红色,黄色等6种原色。
计算公式:
若底色的R+混合色的R>=255, 则 结果色的R=255,否则为0;
若底色的G+混合色的G>=255, 则 结果色的G=255,否则为0;
若底色的B+混合色的B>=255, 则 结果色的B=255,否则为0;
得到的RGB值就是结果色。
R,G,B均由255和0两个值组成,那么产生的颜色就只会是黑、白、红、绿、蓝、青、洋红、黄。
第五大块、差异混合模式
差异混合模式,是寻找基础层和混合层之间的差异来混合得到结果色。
差值
差值混合模式对比底色和混合色的差异得到混合结果色。
如果两者完全一样,则结果为全黑。
如果两者为黑白两色,则结果为全白。
如果其中一个为白色,则结果色为另一个的反相。
计算公式:
结果色的R=|底色的R-混合色的R|
结果色的G=|底色的G-混合色的G|
结果色的B=|底色的B-混合色的B|
得到的RGB值就是结果色。
排除
排除与差值比较相似。若其中一个为白色,则结果色为另一个的反相;若其中一个为黑色,则结果会保持另一个颜色。但是,使用50%灰色混合会产生50%的灰色。
计算公式:
结果色的R=底色的R+混合色的R-(底色的R×混合色的R)/128;
结果色的G=底色的G+混合色的G-(底色的G×混合色的G)/128;
结果色的B=底色的B+混合色的B-(底色的B×混合色的B)/128;
得到的RGB值就是结果色。
减去
减去是从底色中减去混合色。
混合层越亮,合成的结果色会越暗。混合层越暗,合成的结果越接近底层。
计算公式:
结果色的R=底色的R-混合色的R;
结果色的G=底色的G-混合色的G;
结果色的B=底色的B-混合色的B;
得到的RGB值就是结果色。同样结果为负,则为0;结果>255,则为255。
划分
除法效果,和减去的效果相反。
混合色为白色,则保持底色不变。
混合色越暗,结果色越亮。
计算公式:
结果色的R=(底色的R/混合色的R)*255;
结果色的G=(底色的G/混合色的G)*255;
结果色的B=(底色的B/混合色的B)*255;
得到的RGB值为结果色。
第六大块、颜色混合模式
颜色混合模式主要根据颜色3要素的不同组合(色相,饱和度和明度)来进行混合。
色相
色相混合模式是将底层相应的色相改为混合层相应的色相,但是保持底层的明度和饱和度不变。
饱和
饱和度混合模式是保持底层的明度和色相,将底层的饱和度改为混合层的饱和度。
混合层为灰度图,那么底层也会转换为灰度图,因为灰度图饱和度为0。
颜色
颜色混合模式是指保持底层的明度,将底层的色相和饱和度改为混合层的色相和饱和度。
如果你想将一张彩色图片,改为某单色图片,可以采用这种混合模式。
同样,混合层为灰度图,那么底层也会转换为灰度图,因为灰度图饱和度为0。
明度
明度混合模式是保持底层的色相和饱和度不变,将底层的明度改为混合层的明度。
综上,这一篇的15种混合模式就讲完了,加上上篇的12种混合模式,总共27种混合模式就全部解说完毕。
没有看过上篇的,可以点击头像进入查看文章。
标签: #rgb颜色混合算法有哪些