android.graphics.ColorMatrix

7 篇文章 0 订阅
7 篇文章 0 订阅

    该类包含一个5x4的数字矩阵用于变换图片的color值,矩阵存储在一个一维数组中,[ 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'];

public ColorMatrix ()

该构造函数得到一个标准的数组,图片变换后跟没变换一样,调用reset()也能得到同样的数组

public ColorMatrix (float[] src)

创建出来的颜色变换矩阵的数组是src,注意该数组要给够20个元素

public ColorMatrix (ColorMatrix src)

创建出来的颜色变化矩阵跟参数一模一样

public final float[] getArray ()

获取颜色变化矩阵的当前数组

public void postConcat (ColorMatrix postmatrix)

将当前颜色矩阵连接到postmatrix矩阵后边,相当于调用setConcat(postmatrix, this);

public void preConcat (ColorMatrix prematrix)

将prematrix连接到当前颜色矩阵后边,相当于调用setConcat(this, prematrix);

public void reset ()

将当前颜色矩阵的数组变成标准数组,即不做任何变换

public void set (float[] src)

将当前颜色矩阵的数组的值相应的改成src的值,仅仅是赋值操作,src不会变成颜色矩阵的数组

public void set (ColorMatrix src)

将src的值全部复制给当前颜色矩阵,包括数组什么的,复制里边的内容

public void setConcat (ColorMatrix matA, ColorMatrix matB)

将当前颜色矩阵的值变化为matA连接matB的值,这样得到的颜色矩阵变换的效果相当于先用matB变换图片后然后再用matA变换得到的图片,至于如何连接的,个人认为应该就是矩阵的乘法一类的,matA,matB其中之一与当前颜色矩阵相同也是合法的

public void setRGB2YUV ()

改变该颜色矩阵的数组,使该数组进行变换时可以将RGB变换成YUV

public void setRotate (int axis, float degrees)

改变该颜色矩阵的数组,使该数组进行变换时可以将图片中的颜色选择一条轴线axis来旋转degrees度,当axis=0时以RED为轴线,当axis=1时以GREEN为轴线,当axis=2时以BLUE为轴线。

public void setSaturation (float sat)

改变该颜色矩阵的数组,使该数组进行变换时可以改变颜色的饱和度,0表示灰色,1表示标准的,就是什么都没有改变

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

改变该颜色矩阵的数组,使该数组进行变换时可以缩小颜色的 ARGB值,缩小的比例根据参数来

public void setYUV2RGB ()

改变该颜色矩阵的数组,使该数组进行变换时可以将YUV变换成RGB

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值