Android 改变色光属性

在android 中 封装了一个 ColorMatrix 类,专门用来进行图像的颜色处理。主要用到的还是其中的:色调,饱和度,和亮度。

·色调:

ColorMatrix hueMatrix = new ColorMatrix();
hueMatrix.setRotate(0,hue0);
hueMatrix.setRotate(1,hue1);
hueMatrix.setRotate(2,hue2);

其中 0,1,2分别代表RGB 三色,第二个参数就是要处理的RGB对应的数值。通过如上代码就可以设置一个图片的色调

饱和度:

ColorMatrix saturationMatrix = new ColorMatrix();
saturationMatrix.setSaturation(saturation);

其中 saturation 就是饱和度的数值。当这个值为0 的时候,就是灰色了。

亮度:

ColorMatrix lumMatrix = new ColorMatrix();
lumMatrix.setScale(lum,hue,saturation,1);

当这三个参数都是相同比例的时候图片就是白色的,当最后一位亮度为0 的时候就是黑色了。

通过ColorMatrix  的postConcat  方法进行 色调,饱和,亮度三种的混合,从而让图片的表达更丰富

 //进行颜色混合
ColorMatrix imageMatrix = new ColorMatrix();
imageMatrix.postConcat(hueMatrix);
imageMatrix.postConcat(saturationMatrix);
imageMatrix.postConcat(lumMatrix);

具体的代码可以参考 网上现有的。


PART 2 : 分析Android 中的ColorMatrix.

 

图中 

第一行代表 R 

第二行达标 G

第三行代表 B

第四行代表 A

第五列 代表---ejot分别用来决定每个分量(R,G,B,A)中的offset偏移量,

初始矩阵 

代表一个图片的原图效果。如果改变矩阵为如下:


就改变了R,G颜色的偏移量

如果将原始矩阵改变为:


这就代表了改变了三原色 B 的值,整个图片就会偏蓝。这样就改变了颜色系数

我们如果需要改变这个矩阵的值,只需要有一个一维数组(mColorMatrix)将这些值按照[a,b,c,d...,s,t]的顺序存储下来,最终通过

ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.set(mColorMatrix);

将mColorMatrix 设置给 colorMatrix.重新绘制图片。

网上代码一大堆,这里就不帖代码了。


 参考链接1

  群英传参考




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值