在数字图像编辑或者计算机图形学领域,混合模式(Blending Mode)用于确定两个图层如何相互叠加在一起。大多数图像处理软件常用的、也是最简单的混合模式是直接用位于上方的图层覆盖住位于下方的图层,或者设置上方图层的透明度,使得两个图层同时显示出模糊的叠加效果。然而,数字图像的特点是每个像素在计算机看来都是一个数字取值,对颜色值进行一定的数学运算,将得到不同的叠加效果,而这些数学运算在图像处理软件中叫做混合模式。
QGIS从2.0版本开始引入混合模式,有了混合模式,图层叠加可以用更加复杂的渲染方式,产生丰富多彩的效果。
图层混合由三个基本元素组成:下方图层像素颜色,上方图层像素颜色以及混合算法,得到混合后的结果颜色。如何利用两个图层像素的颜色得到结果颜色,取决于所选择的叠加算法。
在叠加算法中,大多数图像处理软件(如Photoshop)先对颜色进行归一化后才参与叠加运算,即将[0,255]区间的颜色取值映射到[0,1]区间,0映射为0,表示黑色,255映射为1,表示白色。
下文所给出的公式中,如果没有特别说明,颜色取值均经过归一化处理。
QGIS的图层混合模式可以在图层属性->【符号化】标签页或者【图层样式】面板下方的【图层渲染】->【混合模式】中设置。
QGIS从2.0版本提供混合模式支持,目前3.10版本共有13种模式:
正常(Normal),变亮(Lighten),屏幕( Screen), 掩遮(减淡,Dodge),添加( Addition),变暗( Darken),乘(正片叠底, Multiply),烧焦(加深, Burn),叠加( Overlay),柔光( Soft light),强光( Hard light),差值(Difference)和减去(Subtract)。
下面以1998年与2016年PM2.5栅格图为例演示混合模式的效果。
1998年的PM2.5用单波段灰度图渲染,如下图:
2016年的PM2.5图像用单波段伪彩色进行渲染,如下图:
正常(Normal):
默认的混合模式,对于两个图层混合来说,使用上图层的颜色覆盖下图层。如果上图层设置了透明度,则以透明度百分比显示下图层。这种模式下,颜色并没有改变,只是使用了上图层的alpha通道(透明度)来与下图层混合。
变亮(Lighten):
变亮混合模式取上图层和下图层像素颜色最大值作为结果颜色,因此该混合模式结果为颜色较亮图层的颜色。
f(a,b)=max(a,b)
--a表示下图层颜色值
--b表示上图层颜色值
如果两图层的颜色相同,则颜色不改变。例如,对1998年PM2.5图层应用变亮混合模式后的效果如图:
屏幕( Screen):
又叫“滤色”,是最常用的混合模式之一,两个图层使用屏幕模式混合的结果是:消除两个图层为黑色的像元,留下白色,即如果一个像元为黑色,混合的结果是另一个像元的颜色,如果一个像元为白色,混合结果为白色。公式如下:
f(a,b)=1-(1-a)(1-b)
--a表示下图层颜色值
--b表示上图层颜色值
屏幕模式经常用于将一个图层的纹理与另一个图层叠加,例如山体阴影纹理。
对1998年PM2.5图层设置屏幕混合模式后的效果如下图:
掩遮(减淡,Dodge):
掩遮模式根据上图层的颜色值提高下图层颜色的亮度和饱和度,因此上图层颜色越亮,调整后下图层颜色的亮度和饱和度越高。公式如下:
f(a,b) = b / (1 - a)
--a表示下图层颜色值
--b表示上图层颜色值
对1998年PM2.5图层设置掩遮混合模式后的效果如下图:
添加( Addition):
又叫“线性减淡”,将叠加的两个图层颜色值简单相加,公式如下:
f(a,b) = a+ b
--a表示下图层颜色值
--b表示上图层颜色值
该模式特别适合于高亮显示要素。
对1998年PM2.5图层设置添加混合模式后的效果如下图:
变暗( Darken):
变暗与变亮(Lighten)相反,取上图层和下图层像素颜色最小值作为结果颜色。其公式如下:
f(a,b)=min(a,b)
--a表示下图层颜色值
--b表示上图层颜色值
对1998年PM2.5图层设置变暗混合模式后的效果如下图:
乘(正片叠底, Multiply):
将两个叠加图层的颜色值相乘,即可得到结果颜色,其公式如下:
--a表示下图层颜色值
--b表示上图层颜色值
乘是最常用的混合模式之一,从公式可以看出,因为0乘以任何数都为0,两个图层当前像元只要有黑色,则结果颜色为黑色。
对1998年PM2.5图层设置乘混合模式后的效果如下图:
烧焦(加深, Burn):
烧焦又叫加深,使用烧焦效果时,上图层颜色较深导致下图层变暗,常用于对下图层进行着色或者颜色微调。
对1998年PM2.5图层设置烧焦混合模式后的效果如下图:
叠加( Overlay):
叠加模式是乘和屏幕模式的结合,该模式以下方图层为颜色控制层,对于结果图层来说,下方图层亮的地方(颜色值大于等于0.5),结果图层变亮,下方图层暗的地方(颜色值小于0.5),结果图层变暗。
其计算公式如下:
--a表示下图层颜色值
--b表示上图层颜色值
对1998年PM2.5图层设置叠加模式后的效果如下图:
柔光( Soft light):
与叠加模式类似,使用烧焦/掩遮两个算法来分别处理0.5以下和0.5以上的颜色值,使得最终的画面比叠加更加柔和。
对1998年PM2.5图层设置柔光模式后的效果如下图:
强光( Hard light):
强光实现的原理与叠加(overlay)类似,只是将控制图层放在上层。即对于结果图层来说,上方图层亮的地方,结果图层变亮,上方图层暗的地方,结果图层变暗。
对1998年PM2.5图层设置强光模式后的效果如下图:
差值(Difference):
差值顾名思义就是两个图层颜色值相减得到结果颜色值,可以是上方图层减去下方图层,也可以是下方图层减去上方图层,只要保证得数为正即可。
对黑色图层使用差值将得到另一个图层原有色彩,对白色图层使用差值模式将使另一个图层颜色反转。
对1998年PM2.5图层设置差值模式后的效果如下图:
减去(Subtract):
减去模式用一个图层的颜色值减去另一个图层的颜色值,如果得数为负数,则显示黑色。与差值(Difference)不同,减去模式不会为了保持结果为正数而改变减数和被减数的顺序。
对1998年PM2.5图层设置减去模式后的效果如下图:
细心的朋友可能会发现,除了正常模式之外,混合模式的下拉菜单被分隔符分成了4个组:
第一组:包括变亮(Lighten),屏幕( Screen), 掩遮(减淡,Dodge),添加( Addition)四种模式。使用这些模式会使最终地图颜色变亮(Lighten)。
第二组:变暗( Darken),乘(正片叠底, Multiply),烧焦(加深, Burn)三种模式。使用这些混合模式会使最终地图颜色变暗(Darken)。
第三组:叠加( Overlay),柔光( Soft light),强光( Hard light)三种模式。使用这些混合模式会改变地图颜色的对比度。
第四组:差值(Difference)和减去(Subtract)。使用这些混合模式会使地图颜色产生一定程度反转。
在地图生产过程中,大家可以根据想要达到的效果试验不同的混合模式以选择最佳方案。
混合模式除了用于图层叠加,也可以为矢量要素绘制、打印布局元素叠加和绘制效果(Draw Effect)提供更加多样的叠加效果。
版权声明
本文欢迎转载,转载时请注明出处。