ColorMatrix 矩阵效果,即美图秀秀图片滤镜效果的思路

来源:互联网 发布:java ftp下载速度慢 编辑:程序博客网 时间:2024/06/07 21:06

原图

这里写图片描述

灰度效果

0.33F ,0.59F ,0.11F ,0F ,0F,
0.33F ,0.59F ,0.11F ,0F, 0F,
0.33F ,0.59F ,0.11F 0F, 0F,
0F, 0F, 0F, 1F, 0F

这里写图片描述

图像翻转

-1F, 0F, 0F, 1F,1F,
0F ,-1F, 0F ,1F, 1F,
0F , 0F, -1 ,1F, 1F,
0F , 0F, 0F ,1F, 0F

这里写图片描述

怀旧效果

0.394F ,0.769F ,0.189F ,0F,0F,
0.349F ,0.6856F ,0.168F ,0F, 0F,
0.272F ,0.534F ,0.131F 0F, 0F,
0F, 0F, 0F, 1F, 0F

这里写图片描述

去色效果

1.5F, 1.5F, 1.5F, 0F, -1F,
1.5F, 1.5F, 1.5F, 0F, -1F,
1.5F, 1.5F, 1.5F, 0F, -1F,
1.5F, 1.5F, 1.5F, 1F, 0F

这里写图片描述

高饱和度

1.438F, -0.122F, -0.016F, 0F, -0.03F,
-0.062F, 1.378F,-0.016F, 0F,0.05F,
-0.062F, -0.122F, 1.483F,0F,-0.02F,
0F, 0F, 0F, 1F, 0F

这里写图片描述

代码段
Bitmap bmp = Bitmap.createBitmap(bm.getWidth(),bm.getHeight(),Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
Paint paint = new Paint();
ColorMatrix hueMatrix = new ColorMatrix();
hueMatrix.set(f);//f即float数组
paint.setColorFilter(new ColorMatrixColorFilter(hueMatrix));
canvas.drawBitmap(bm,0,0,paint);
img.setImageBitmap(bmp);

更多效果请自行谷歌。

1 0
原创粉丝点击