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

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

e7b0c8e6128d2231f7f1e8fdf26c9193.png

(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

6b798cd9d23e08548f9c43b45a297716.png

(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

1caf828f2acb110be640156ae70ca886.png

(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

7fb984422251ed8a88a8cf4e22f067bf.png

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;

}

三、后滤镜时代

在网上看到一些信息和相机应用,很多相机玩家对手机相机的使用是越来越多,作为手机相机的开发者需要有更多的创意和特性为手机相机添彩!如下几点相机的发展方向供大家参考:

508ff2e0aa27a3c2d9af38e85172abe1.png

(1)实时滤镜

VIDA是一款来自国内团队的照相应用,它的一大特色就是实时滤镜,在拍摄的同时你已经可以预览到最终的成品。这是一个强化滤镜功能的方向。和单纯的加入新滤镜不同,实时滤镜把握住了所见即所得的精髓。

(2)GIF 动画

GIFshop是 一款快速制作定格动画的应用。它结合了动态画面的叙事能力,保留了图片的小体积特点。但 GIFshop的问题也非常突出,比起记录生活,它更适合于创作一些幽默的动态小品。一旦涉及到“创作”,用户的门槛就被无情地提高了。但让画面动起来的想法要比单纯的强化滤镜要走的更远一些。

(3)动态图片

Cinemagram制 作出来的图片可以只在某一特定区域中出现动态效果。你可以那它创建那种网上流行的“会动的海报”。比起GIFshop,它能够让普通的记事照片变得有点魔幻。由于应用的构思巧妙,因此适合套用在不同的场合中。用户的门槛相对较小,但收获却是挺大的。我将其看作是GIFshop的改进版本。

(4)声音+图片

Picle是 一款让你在拍摄相片的同时也记录下一段音频的应用。它的好处是让 “画外音”这一有趣的角色参与照片的叙事。相比上述应用,Picle进入了另个维度,它考虑到图片的叙事瓶颈,并试图通过加入音频来突破。Picle所面临的问题是,它建立了一种新的格式,而这种格式目前还只能在Picle体系内分享。

后滤镜时代里各支团队在不同方向上设定了不同的瓶颈,并通过一定的方法来突破。思考的起点无一例外的定在了增强图片叙事能力之上。从目前的情况来看,有一些事项值得注意:

·体积:不能因为增强了效果而变得臃肿。

·题材:不能因为特别适合某种题材而狭隘了用户的使用场景。

·格式:在现有流行的格式上入手,避免使用新格式。

·门槛:在用户利益和使用复杂度上寻求平衡。

·多媒体:在图片上做加法,但不能演变成拍摄视频。

相信随着硬件技术的增强,手机将成为一类新的照相设备。它也许替代不了传统的相机,但它却能因为应用而变得不可替代。而可以预见的是,滤镜不会是手机照相的最后一站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值