Most visited

Recently visited

Added in API level 1

ColorMatrix

public class ColorMatrix
extends Object

java.lang.Object
   ↳ android.graphics.ColorMatrix


4x5矩阵,用于转换位图的颜色和alpha分量。 该矩阵可以作为单个数组传递,并按如下方式处理:

  [ a, b, c, d, e,
    f, g, h, i, j,
    k, l, m, n, o,
    p, q, r, s, t ]

当应用于颜色 [R, G, B, A] ,生成的颜色计算如下:

   R’ = a*R + b*G + c*B + d*A + e;
   G’ = f*R + g*G + h*B + i*A + j;
   B’ = k*R + l*G + m*B + n*A + o;
   A’ = p*R + q*G + r*B + s*A + t;

结果颜色 [R’, G’, B’, A’]然后将每个通道钳位到 0255范围。

下面的示例ColorMatrix通过缩放每个通道 -1来反转输入颜色,然后将结果向上移动 255以保留在标准色彩空间中。

   [ -1, 0, 0, 0, 255,
     0, -1, 0, 0, 255,
     0, 0, -1, 0, 255,
     0, 0, 0, 1, 0 ]

Summary

Public constructors

ColorMatrix()

创建一个初始化为标识的新colormatrix(就像调用reset()一样)。

ColorMatrix(float[] src)

用指定的值数组创建一个新的colormatrix。

ColorMatrix(ColorMatrix src)

创建一个用指定的颜色矩阵初始化的新颜色矩阵。

Public methods

final float[] getArray()

返回表示此颜色矩阵的浮点数组。

void postConcat(ColorMatrix postmatrix)

使用指定的后处理函数对此颜色矩阵进行Concat。

void preConcat(ColorMatrix prematrix)

使用指定的前置矩阵对此colormatrix进行Concat。

void reset()

将此颜色矩阵设置为标识:

 [ 1 0 0 0 0   - red vector
   0 1 0 0 0   - green vector
   0 0 1 0 0   - blue vector
   0 0 0 1 0 ] - alpha vector
 

void set(float[] src)

将浮点数组分配到该矩阵中,并复制其所有值。

void set(ColorMatrix src)

将src色彩矩阵分配到此矩阵中,并复制其所有值。

void setConcat(ColorMatrix matA, ColorMatrix matB)

将此颜色矩阵设置为两个指定颜色矩阵的连接,使得生成的颜色矩阵与应用matB并应用matA具有相同的效果。

void setRGB2YUV()

设置矩阵将RGB转换为YUV

void setRotate(int axis, float degrees)

通过指定的值设置颜色轴上的旋转。

void setSaturation(float sat)

设置矩阵以影响颜色的饱和度。

void setScale(float rScale, float gScale, float bScale, float aScale)

设置此颜色矩阵以按指定值进行缩放。

void setYUV2RGB()

将矩阵设置为从YUV转换为RGB

Inherited methods

From class java.lang.Object

Public constructors

ColorMatrix

Added in API level 1
ColorMatrix ()

创建一个初始化为标识的新colormatrix(就像调用reset()一样)。

ColorMatrix

Added in API level 1
ColorMatrix (float[] src)

用指定的值数组创建一个新的colormatrix。

Parameters
src float

ColorMatrix

Added in API level 1
ColorMatrix (ColorMatrix src)

创建一个用指定的颜色矩阵初始化的新颜色矩阵。

Parameters
src ColorMatrix

Public methods

getArray

Added in API level 1
float[] getArray ()

返回表示此颜色矩阵的浮点数组。

Returns
float[]

postConcat

Added in API level 1
void postConcat (ColorMatrix postmatrix)

使用指定的后处理函数对此颜色矩阵进行Concat。

这在逻辑上与调用setConcat(postmatrix,this)相同;

Parameters
postmatrix ColorMatrix

preConcat

Added in API level 1
void preConcat (ColorMatrix prematrix)

使用指定的前置矩阵对此colormatrix进行Concat。

这在逻辑上与调用setConcat(this,prematrix)相同;

Parameters
prematrix ColorMatrix

reset

Added in API level 1
void reset ()

将此颜色矩阵设置为标识:

 [ 1 0 0 0 0   - red vector
   0 1 0 0 0   - green vector
   0 0 1 0 0   - blue vector
   0 0 0 1 0 ] - alpha vector
 

set

Added in API level 1
void set (float[] src)

将浮点数组分配到该矩阵中,并复制其所有值。

Parameters
src float

set

Added in API level 1
void set (ColorMatrix src)

将src色彩矩阵分配到此矩阵中,并复制其所有值。

Parameters
src ColorMatrix

setConcat

Added in API level 1
void setConcat (ColorMatrix matA, 
                ColorMatrix matB)

将此颜色矩阵设置为两个指定颜色矩阵的连接,使得生成的颜色矩阵与应用matB并应用matA具有相同的效果。

matA或matB与此相同的颜色矩阵是合法的。

Parameters
matA ColorMatrix
matB ColorMatrix

setRGB2YUV

Added in API level 1
void setRGB2YUV ()

设置矩阵将RGB转换为YUV

setRotate

Added in API level 1
void setRotate (int axis, 
                float degrees)

通过指定的值设置颜色轴上的旋转。

axis=0对应于围绕红色的旋转 axis=1对应于围绕绿色的旋转 axis=2对应于绕BLUE颜色的旋转

Parameters
axis int
degrees float

setSaturation

Added in API level 1
void setSaturation (float sat)

设置矩阵以影响颜色的饱和度。

Parameters
sat float: A value of 0 maps the color to gray-scale. 1 is identity.

setScale

Added in API level 1
void setScale (float rScale, 
                float gScale, 
                float bScale, 
                float aScale)

设置此颜色矩阵以按指定值进行缩放。

Parameters
rScale float
gScale float
bScale float
aScale float

setYUV2RGB

Added in API level 1
void setYUV2RGB ()

将矩阵设置为从YUV转换为RGB

Hooray!