|
发表于 2004-2-17 10:55:03
|
显示全部楼层
5.6 混合模式
(接上) 我们以F和B来分别代表前景和背景像素值. 混合前景像素F与背景像素B得到合成像素值R.
5.6.1 Normal、溶解(dissolve)及behind混合模式
Normal、溶解和behind并不是真正意义上的混合模式. 它们并不合成图像的前/背景像素值.
Normal模式是GIMP的默认状态. 此时前景可视, 背景则不可视. 当然, 这可以通过调整不饱和度来改变. (更多的关于不饱和度/饱和度的内容见5.7节)
溶解模式是使一定比例的背景色透过前景显示, 来达到混合目的. 此效果通过使一部分前景部分透明而其余部分完全透明来实现. 两部分像素随机分布. 为使溶解模式发挥其作用, 前景图层必须有一个alpha通道. 其值要低于255. 该图层的alpha通道可以由图层蒙版进行修改. 相应的内容见4.2节.(图5.12: 溶解混合模式)图5.12图示了溶解模式的应用效果. 图5.12(a)为图层对话框, 它图示说明了上例是如何构建的. 该图由两个图层构成: 红色的背景和一白色前景. 前景包含一个alpha通道. 其value值为?791?(不饱和度约为75%). 图5.12(a)中的模式菜单显示了前景已经选择了溶解模式. 图5.12(b)为应用溶解混合的结果. 由于前景alpha通道值的设定, 混合结果为: 75%的白色像素部分透明(25%), 剩下25%完全不透明. 如图5.12(b)所示, 在 的小区域内可以清楚的看到各个混合细节. 在图5.12(c)中该区域缩放900%. 红白像素的关系变得十分明晰.
与其他混合模式不同, behind只是与绘图工具一起使用, 而不能作为一种混合模式用于图层. 要理解它的工作原理, 我们来想像一下. 一块涂有某种颜料的方格玻璃. 它的某些部分没有完全被遮住, 或者说, 是半透明的. 选择我们在后面涂上颜色, 它就会从那些半透明的部分显现出来. (图5.13: behind混合模式) 图5.13图示了这一效果. 图5.13(a)中只有一个图层, 图像中间有一个红色圆, 其余部分透明. 而图5.13(b)显示了画笔选择对话框, 图中显示, 画笔: 大而硬(没有模糊效果)的画刷(brush), 混合模式选为behind.
图中显示了使用画笔工具绘出的一条穿过圆的绿色条纹. 只有包含alpha通道的图层才可以使用behind模式.
5.6.2 Addition、Subtract和差值(difference)混合工具
Addition、Subtract和差值(difference)混合模式就使前景与背景像素值相减或是相加. (图5.14: 在RGB cube中相加和相减) 图5.14图示了RGB中两个像素Addition和Subtraction的效果. Addition混合模式工作原理如下: 给出一个前景像素和一个背景像素, 并设其值分别为F=(r1,g1,b1)和B=(r2,g2,b2), 使用Addition模式得到的像素值R=F+B=(r1+r2,g1+g2,b1+b2). 在图5.14(a)这, 两个蓝色箭头指向前景、背景像素; 红色箭头指向合成像素. Addition模式生成的颜色与原背景或前景色亮度相当, 甚至会更亮一些. 这是因为, 两个像素的矢量和会在中性轴上有一个投影, 而这个投影点比前景或背景像素更靠近白色. 如果前/背景颜色向量之和所对应的颜色在RGB cube之外(即,
合成像素的R,G,B三个分量至少有一个值超过255), 系统便会自动将其值减到255(使像素点处于RGB cube表面). Addition模式以等式描述如下:
其中w代表向量(255,255,255), 起取两个向量中的最小值的作用.
蓝绿、紫红和黄色分别是绿和蓝、红和蓝、红和绿的加和. 因此, 也就不难理解前者比红、绿、蓝三色更亮一些. 而secondary color(蓝绿、紫红和蓝) 中任何一色与primary color的加和便会生成白色----所有颜色中最亮的. (图5.15: 使用Addition混合模式) 图5.15图示了Addition模式的应用. 图5.15(a)为一朵 花, 图5.15(b)为与之相应的图层对话框. 其中显示了两个图层, 上层为
花, 下层以中灰色(R,G,B均为127)填充. 图5.15(a)以Normal模式显示, 当还还换为Addition时, 其显示效果如图5.15(c)所示. 它使127R,127G,127B与前景中每一个像素相加, 进而增加整个图像的亮度. (其实, 图像的一些部分已经完全变为白色)
Subtract混合模式的应用效果如图5.14(b)所示. 它的原理如下: 仍给定一个前景和一个背景像素, 其矢量值同样是F=(r1,g1,b1), B=(r2,g2,b2). 使用Subtract是结果为R=(r1-r2,g1-g2,b1-b2). 图5.14(b)中两个蓝色箭头分别代表F和B向量, 红色箭头则代表前背景像素相减的结果R.
与Addition模式不同, Subtract模式并不对称. 也就是说, B-F不等同于F-B. 背景与前景像素相减的结果可能是负值, 系统同样会将R点移至RGB cube表面, 即将RGB三者中小于0的用零代替. Subtract混合模式可用等式描述如下:
其中"o"代表0R,0G,0B, 函数作用是在两个向量中取最大值. 由于前景色大多为正值, 相减的结果大都比背景色要暗(除了背景或前景为黑色的情况, 此时其结果与原图一样).
Difference混合模式类似于Subtract, 只有由于difference模式是取前、背景色之差的绝对值, 而略显不同. difference混合模式的数学表达式如下: R=|F-B| (图5.16: 应用Subtract及difference混合模式) 图5.16为上述两种混合模式的应用, 两种混合模式仍应用于图5.15(a). 应用subtract的结果如图5.16(a)所示, 其中包含4块全黑区域, 这些部分就是将前,背景色相减后产生负值, 后经系统处理为零的结果. Difference的效果见图5.16(b), 图中没有了全黑的部分, 这要归功于绝对值运用.不过, 对于上述两种混合模式, 混合结果都要比原图变暗.
5.6.3 Multiply(burn)、Divide、(Dodge)Screen及Overlay混合模式
Multiply(burn)、Divide、(Dodge)Screen及Overlay都是乘积形式的混合模式. 生成的像素是前背景色的乘积或乘积的函数.
Multiply and Screen模式对RGB像素的作用如图5.17所示. (图5.17: Multiply and Screen混合模式) 对于给定的前景像素(r1,g1,b1)和背景像素(r2,g2,b2), 使用Multiply模式生成的像素是颜色向量中各自对应的分向量(R,G,B值)相乘得来的. 即(r1*r2/255,g1*g2/255,b1*b2/255). 其中除数255是保证生成的点向量值在RGB cube中. 可用等式简略表达如下:
式中 表示相乘.
由于比例系数255, RGB各分量均为原值的0到1倍. 因此, 从以前的讨论可知, 相对较小的数值意味着较暗的颜色. 在中性轴上的投影便接近原点. 在图5.17(a)中, 显示有两个蓝色箭头, 分别代表了前景和背景像素, 而红色箭头则指向生成像素. (图5.8: Multiply(burn)、Divide、(Dodge)Screen及Overlay模式应用举例) 图5.18(a)图示了应用Multiply模式于5.15(a). 应用结果如图5.18(a)所示. 不难发现, 图像整体便暗了. 实际上, 由于背景为中灰色, 前景各像素值均为原值的1/2.
对divide模式, 我们以同样的方法设定前/背景像素. 使用divide模式生成的像素与Multiply的结果类似. 即, (255*r2/r1,255*g2/g2,255*b2/b1). 然而, 上式暴露了两个问题. 第一, 当前景向量中有一个零分量时, 其结果便无法确定; 第二, 前景像素值很小会使结果过大, 从而超出RGB的范围. 第一个问题可以通过向前景像素各分量加1来解决, 从而避免了除数为零; 对于第二个问题, 依旧将超界的分量统统定义为255.
Divide模式的表达式如下:
式中w为(255R,255G,255B), 表示两向量相除, 而 表示最小化. 图5.18(b)图示了在图5.15(a)中应用Divide模式. 在这里, 我们可以看到图中一些部分已经变为白色. 在花的图中, 像素值比较小(即, 颜色较暗)的区域会出现这样的情况. 注意, Divide模式通常是使图像加亮的, 正是由于各个分量都除以一个小于1大于0的值.
Screen模式会产生一个与Multiply模式变暗效果极为类似的效果.这一概念如图5.17(b)所示. Screen模式重新将原点定义为255R,255G,255B. 即, RGB立方体的白色点. 图5.17(b)中还显示了分别指向前,背景像素向量的蓝色箭头. 而Screen模式便是两向量的乘积, 其结果向量如5.17(b)中红色箭头所指. 如同Multiply模式, Screen模式生成的向量比前景或背景像素向量都要短. 但由于Screen模式将原点定在白色点, 结果便相对更接近白色, 故比前景和背景都要亮.
背景模式的表达式为:
式中引人255仍是为了保证数值范围始终在RGB之内.
图5.18(c)图示了在图5.15(a)中应用Screen模式的一个例子. 不难看出, 混合结果使原图便亮. 同时也要注意, Screen模式不会像Divide一样使某个区域完全变为白色. 因此, 虽然Divide和Screen模式都可事图像变亮, 但各有各自的特点.
最后介绍Overlay. 它是Multiply和Screen模式的组合体. Overlay用等式描述如下:
其中Rs和Rm分别代表由Screen及Multiply生成的像素值. 由Screen及Multiply合成而得到的值与背景像素成比例. 因此, 如果背景较暗(即, RGB三分量都接近零), Multiply模式会占据主导地位, 而Screen只能退居次席; 相反, 如果背景像素会比较亮(即, RGB三分量都接近白色), Screen模式便会起支配作用. 综上, Overlay模式会使图像中暗的更暗, 亮的更亮. 图5.18(d)就图示了应用Overlay的例子.
5.6.4 Darken only和Lighten only
Darken only的作用是, 取前, 背景中对应分量的最小值, 并以最小值各个最小值组成新的像素. 设前景像素为(r1,g1,b1), 背景像素为(r2,g2,b2). 生成的像素为 . 更为简洁的表达式为:
其中 表示取最小值. 顾名思义, Darken only会使图像便暗. (图5.19: 使用Darken only和Lighten only模式举例) 图5.19(a)图示了在图5.15(a)中的应用. 由于背景是一个中灰色的灰度图像(127R,127G,127B), 所有比127低的分量都得以保留. 图像中较亮的部分都会被代之以灰色.
Lighten only模式与Darken only相反, 它会选取各对应分量中较大的, 来合成新像素. Lighten
only的数学表达式如下:
式中 表示取最大值. 图5.19(b)为Lighten only模式在5.15(a)中的应用. 图像中所有大于127的分量会保持不变, 而灰色会替换比它更暗的颜色.
5.6.5 色彩, 饱和度, value和颜色混合(color blending)模式
色彩, 饱和度, value及颜色混合模式原理很相似, 它们都从前景像素中提取一个HSV分量, 再从相应的背景像素提取另外两个HSV分量. 举例说明. 如果选择色彩混合模式, 生成的像素便由前景像素的色彩加上背景像素的S和V值组合而成. 饱和度及value模式的原理与之相似. 颜色混合模式略有不同. 它取前景像素的饱和度和饱和度, 以及背景像素的Lightness作为新像素的三分量. Lightness的定义见5.3节, 它不如value"亮", 但更符合人类对亮度的感知.
色彩模式的表达式为: F=[ h(F),s(B),v(B) ]. 其中h(F)表示前景的色彩, s(B),v(B)分别表示背景的饱和度和value. 色彩混合模式应用的例子如图5.20所示. (图5.20: 色彩模式应用举例) 图5.15(a)花的图像显示于图5.20(a), 它作为色彩模式的前景, 而背景为图5.20(b)所示的蓝色图层, 其水平方向为value渐变, 垂直方向为饱和度渐变. 色彩模式应用的结果如图5.20(c)所示. 我们可以很清楚的看到, 蓝色背景中, 饱和度和value的渐变与前景的色彩的组合在图像得以充分的体现.
与色彩模式类似, 饱和度混合模式生成像素的三个分量分别是: 前景饱和度和背景的色彩及value. 其表达式为R=[h(B),s(F),v(B)]. h(B),s(F),v(B)分别表示背景色彩、前景饱和度以及背景
value.饱和度的应用如图5.21所示. (图5.21: 饱和度的应用举例) 可以看到, 花的图像仍扮演前景的角色. 而此时背景则为色彩和value的渐变. (图5.21(b)) 色彩沿水平渐变, value沿垂直渐变. 其作用效果如图5.21(c)所示.
接下来介绍value模式. 原理不再赘序. value的表达式为: R=[h(B),s(B),v(F)]. 式中h(B),s(B)和v(F)分别代表背景色彩、背景饱和度和前景value. 其应用如图5.22所示. (图5.22: value模式应用记举例) 背景见图5.22(b), 结果如图5.22(c)所示.
最后, 我们来简要介绍颜色混合模式. 它是前景的色彩和饱和度与背景的Lightness组合形成新像素. 其数学表达式为: R=[h(F),s(F),l(B)]. 其中h(F),s(F)和v(B)分别代表, 前景色彩、前景饱和度和背景Lightness. 其应用的例子如图5.23所示. |
|