1彩届、Paint-濾鏡
1、LightingColorFilter濾鏡
/**
LightingColorFilter(@ColorInt int mul, @ColorInt int add)
mul和add都是和顏色值格式形同的int值压固,其中mul用來和目標像素相乘腮介,add用來和目標像素相加;
* R' = R * mul.R / 0xff + add.R
* G' = G * mul.G / 0xff + add.G
* B' = B * mul.B / 0xff + add.B
*/
//紅色去除掉
LightingColorFilter lighting = new LightingColorFilter(0x00ffff,0x000000);
mPaint.setColorFilter(lighting);
canvas.drawBitmap(mBitmap, 0,0, mPaint);
//原始圖片效果
LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x000000);
mPaint.setColorFilter(lighting);
canvas.drawBitmap(mBitmap, 0,0, mPaint);
//綠色更亮
LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x003000);
mPaint.setColorFilter(lighting);
canvas.drawBitmap(mBitmap, 0,0, mPaint);
2斗埂、PorterDuffColorFilter濾鏡
/**
* PorterDuffColorFilter(@ColorInt int color, @NonNull PorterDuff.Mode mode)
* color符糊,具體的顏色值,例如Color.RED
* mode呛凶,指定PorterDuff.Mode的圖層混合模式
*/
PorterDuffColorFilter porterDuffColorFilter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.DARKEN);
mPaint.setColorFilter(porterDuffColorFilter);
canvas.drawBitmap(mBitmap, 100, 0, mPaint);
2-1.png
3男娄、ColorMatrixColorFilter濾鏡
//第一種方式
float[] colorMatrix = {
2,0,0,0,0, //red
0,1,0,0,0, //green
0,0,1,0,0, //blue
0,0,0,1,0 //alpha
};
ColorMatrixColorFilter mColorMatrixColorFilter = new ColorMatrixColorFilter(colorMatrix);
mPaint.setColorFilter(mColorMatrixColorFilter);
canvas.drawBitmap(mBitmap, 100, 0, mPaint);
//第二種方式
ColorMatrix cm = new ColorMatrix();
//亮度調(diào)節(jié)
cm.setScale(2,1,1,1);
//飽和度調(diào)節(jié)0-無色彩, 1- 默認效果漾稀, >1飽和度加強
cm.setSaturation(2);
//色調(diào)調(diào)節(jié)
cm.setRotate(0, 45);
ColorMatrixColorFilter mColorMatrixColorFilter = new ColorMatrixColorFilter(cm);
mPaint.setColorFilter(mColorMatrixColorFilter);
canvas.drawBitmap(mBitmap, 100, 0, mPaint);