Android|Android Camera 实时滤镜(三)

一、基于Android平台基本滤镜算法的实现
1、Android提供了改变图像数值的方法ColorMatrix,通过ColorMatrix方法可以实现基本滤镜,如黑白、灰色、泛黄等效果。

2、通过ColorMatrix改变图像数值,生成变换矩阵,利用矩阵相乘,来改变每个点的像素值。
Matrix =>

r1
r2
r3
r4
r5
g1
g2
g3
g4
g5
b1
b2
b3
b4
b5
a1
a2
a3
【Android|Android Camera 实时滤镜(三)】a4
a5


变化以后
R'=R * r1+G * r2+B * r3+A * r4+r5;
G'=R * g1+G * g2+B *g3+A * g4+g5;
B'=R * b1+G * b2+B *b3+A * b4+b5;
A'=R * a1+G * a2+B * a3+A * a4+a5;
第1~3列是控制色相的,第4列是控制透明度的,第5列是分量的增加值

3、R、G、B、A系数值变化会修改图像的效果
(1)对角线值为1.0,其他为0时,图像保证的是原图像
图像原图
R
1.0
0
0
0
0
G
0
1.0
0
0
0
B
0
0
1.0
0
0
A
0
0
0
1.0
0
Android|Android Camera 实时滤镜(三)
文章图片

(2)对角线值若大于1.0,其他为0时,图像偏亮
图像偏亮
R
2.0
0
0
0
0
G
0
2.0
0
0
0
B
0
0
2.0
0
0
A
0
0
0
2.0
0
Android|Android Camera 实时滤镜(三)
文章图片

(3)对角线值若小于1.0,其他为0时,图像偏暗
图像偏暗
R
0.5
0
0
0
0
G
0
0.5
0
0
0
B
0
0
0.5
0
0
A
0
0
0
0.5
0
Android|Android Camera 实时滤镜(三)
文章图片


(4)设定图像为灰色,通过查资料 R 0.3 G0.59 B 0.11
图像偏暗
R
0.3f
0.59f
0.11f
0
0
G
0.3f
0.59f
0.11f
0
0
B
0.3f
0.59f
0.11f
0
0
A
0
0
0
1.0
0
Android|Android Camera 实时滤镜(三)
文章图片


4、根据以上的实现,实现基本滤镜的算法是

public Bitmap getBlackStyle(Bitmap src){Bitmap dst = Bitmap.createBitmap(src.getWidth(),src.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(dst); ColorMatrix cm = new ColorMatrix(); //设定图像为灰色,通过查资料 R 0.3 G0.59 B 0.11 cm.set(new float[] { 0.3f, 0.59f, 0.11f, 0, 0, 0.3f, 0.59f, 0.11f, 0, 0, 0.3f, 0.59f, 0.11f, 0, 0, 0, 0, 0, 1, 0 }); Paint paint = new Paint(); paint.setColorFilter(new ColorMatrixColorFilter(cm)); canvas.drawBitmap(src, 0, 0, paint); // 保存图像 canvas.save(Canvas.ALL_SAVE_FLAG); // 存储 canvas.restore(); return dst; }





三、后滤镜时代
在网上看到一些信息和相机应用,很多相机玩家对手机相机的使用是越来越多,作为手机相机的开发者需要有更多的创意和特性为手机相机添彩!如下几点相机的发展方向供大家参考:
Android|Android Camera 实时滤镜(三)
文章图片


(1)实时滤镜
VIDA 是一款来自国内团队的照相应用,它的一大特色就是实时滤镜,在拍摄的同时你已经可以预览到最终的成品。这是一个强化滤镜功能的方向。和单纯的加入新滤镜不同,实时滤镜把握住了所见即所得的精髓。
(2)GIF 动画
GIFshop 是 一款快速制作定格动画的应用。它结合了动态画面的叙事能力,保留了图片的小体积特点。但 GIFshop 的问题也非常突出,比起记录生活,它更适合于创作一些幽默的动态小品。一旦涉及到 “创作” ,用户的门槛就被无情地提高了。但让画面动起来的想法要比单纯的强化滤镜要走的更远一些。
(3)动态图片
Cinemagram 制 作出来的图片可以只在某一特定区域中出现动态效果。你可以那它创建那种网上流行的“会动的海报”。比起 GIFshop ,它能够让普通的记事照片变得有点魔幻。由于应用的构思巧妙,因此适合套用在不同的场合中。用户的门槛相对较小,但收获却是挺大的。我将其看作是 GIFshop 的改进版本。
(4)声音+图片
Picle 是 一款让你在拍摄相片的同时也记录下一段音频的应用。它的好处是让 “画外音” 这一有趣的角色参与照片的叙事。相比上述应用,Picle 进入了另个维度,它考虑到图片的叙事瓶颈,并试图通过加入音频来突破。Picle 所面临的问题是,它建立了一种新的格式,而这种格式目前还只能在 Picle 体系内分享。
后滤镜时代里各支团队在不同方向上设定了不同的瓶颈,并通过一定的方法来突破。思考的起点无一例外的定在了增强图片叙事能力之上。从目前的情况来看,有一些事项值得注意:
· 体积:不能因为增强了效果而变得臃肿。
· 题材:不能因为特别适合某种题材而狭隘了用户的使用场景。
· 格式:在现有流行的格式上入手,避免使用新格式。
· 门槛:在用户利益和使用复杂度上寻求平衡。
· 多媒体:在图片上做加法,但不能演变成拍摄视频。
相信随着硬件技术的增强,手机将成为一类新的照相设备。它也许替代不了传统的相机,但它却能因为应用而变得不可替代。而可以预见的是,滤镜不会是手机照相的最后一站。

    推荐阅读