Android 静态滤镜的实现
1、回顾知识点
一、基本滤镜效果的实现(黑白滤镜)
用到的技术是ColorMatrix。经过改变RGBA的系数,从而改变图像的成像效果。算法
Created with Raphaël 2.1.2 图像Bitmap ColorMateix RGB系数 滤镜图像
二、PS滤镜效果的实现(反色效果、冰冻效果、油画效果)
用到的技术是经过遍历图像的像素点,设置图像的像素点的RGB三原色来实现PS效果。markdown
Created with Raphaël 2.1.2 图像Bitmap 获取像素getPixels PS算法 修改像素点Color.red/green/blue 滤镜图像
2、静态滤镜的实现
基于以前积累下来的知识点,在对静态滤镜的实现方面作一下提高,仍是从两方面进行实现。图片
一、基本滤镜效果升级版 –> 伪lomo滤镜的实现
Created with Raphaël 2.1.2 原始图片 ColorMatrix处理 在处理后的图片上覆盖一层彩色lomo图片 覆盖上彩色lomo 伪lomo滤镜效果
- step1:原始图片
- step2:ColorMatrix处理
- step3:在处理后的图片上覆盖一层彩色lomo图片
- step4:覆盖上彩色lomo后的效果
- step5:伪lomo滤镜效果
二、PS滤镜效果升级版 –> 老照片滤镜的实现
(1)HSL颜色标准
- HSL色彩模式是工业界的一种颜色标准,是经过对色调(H)、饱和度(S)、亮度(L)三个颜色通道的变化以及它们相互之间的叠加来获得各式各样的颜 色的,HSL便是表明色调,饱和度,亮度三个通道的颜色,这个标准几乎包括了人类视力所能感知的全部颜色,是目前运用最广的颜色系统之一。
- HSL色彩模式使用HSL模型为图像中每个像素的HSL份量分配一个0~255范围内的强度值。HSL图像只使用三种通道,就可使它们按照不一样的比例混合,在屏幕上重现16777216种颜色。
- 在 HSL 模式下,每种 HSL 成分均可使用从 0到 255的值。(其中L是从黑(0)到白(255)渐变) 。
老照片效果的整体思路是,对色调、饱和度、亮度进行处理,而非以前的红绿蓝色调处理。
(2)算法实现
Created with Raphaël 2.1.2 自定义一个ColorBalance类(用于色彩平衡)Bitmap 创建检索表 颜色矩阵(用于RGB色值的微调) 图片转换为HSL标准 HSL转回为RGB 底片进行α混淆
- 效果图