概要
软件修改屏幕色温通常是通过调整屏幕的RGB偏差值来实现的。在Android系统中,这通常通过修改ColorMatrix(颜色矩阵)来实现。
ColorMatrix是一个4x4的矩阵,用于表示颜色转换。通过调整矩阵中的元素,可以改变图像的颜色属性,包括亮度、对比度、饱和度以及色温等。
技术细节
Android SurfaceFlinger 中修改颜色矩阵的部分。这段代码主要涉及颜色的饱和度调整,通过调整颜色饱和度来实现色彩的改变。
这里主要做了以下几个步骤:
- 定义了一个
float3
类型的变量luminance
,其中包含了 Rec.709 标准的三个颜色通道的亮度系数(红色:0.0,绿色:0.0,蓝色:0.0)。 - 使用饱和度系数
c
对luminance
进行调整,luminance
的每个分量都会乘以1.0f - c
。 - 构建了一个 4x4 的矩阵
saturationMatrix
,该矩