1. ColorMatrix实现
系统使用一个颜色矩阵——ColorMatrix,来处理图像的色彩效果。在色彩处理中,通常使用以下三个角度来描述一个图像。
- 色调——物体传播的颜色
- 饱和度——颜色的纯度,从0(灰)到100%(饱和)来进行描述
- 亮度——颜色的相对明暗程度
代码实现:
float mHue = 0.0f;//色调
float mSaturation = 1f;//饱和度
float mLum = 1f;//亮度
float MID_VALUE;
Bitmap oriBitmap,newBitmap;
MID_VALUE = barHue.getMax() * 1.0F / 2;
oriBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.as);
//Android系统不允许直接修改原图
newBitmap = Bitmap.createBitmap(oriBitmap.getWidth(), oriBitmap.getHeight(), Bitmap.Config.ARGB_8888);
barHue.setOnSeekBarChangeListener(this);
barSaturation.setOnSeekBarChangeListener(this);
barLum.setOnSeekBarChangeListener(this);
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
switch (seekBar