Android Camera 实时滤镜(三)
来源:互联网 发布:工控软件下载 编辑:程序博客网 时间:2024/05/01 08:00
一、基于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
(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
(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
(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
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.11cm.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;}
三、后滤镜时代
在网上看到一些信息和相机应用,很多相机玩家对手机相机的使用是越来越多,作为手机相机的开发者需要有更多的创意和特性为手机相机添彩!如下几点相机的发展方向供大家参考:
(1)实时滤镜
VIDA 是一款来自国内团队的照相应用,它的一大特色就是实时滤镜,在拍摄的同时你已经可以预览到最终的成品。这是一个强化滤镜功能的方向。和单纯的加入新滤镜不同,实时滤镜把握住了所见即所得的精髓。
(2)GIF 动画
GIFshop 是 一款快速制作定格动画的应用。它结合了动态画面的叙事能力,保留了图片的小体积特点。但 GIFshop 的问题也非常突出,比起记录生活,它更适合于创作一些幽默的动态小品。一旦涉及到 “创作” ,用户的门槛就被无情地提高了。但让画面动起来的想法要比单纯的强化滤镜要走的更远一些。
(3)动态图片
Cinemagram 制 作出来的图片可以只在某一特定区域中出现动态效果。你可以那它创建那种网上流行的“会动的海报”。比起 GIFshop ,它能够让普通的记事照片变得有点魔幻。由于应用的构思巧妙,因此适合套用在不同的场合中。用户的门槛相对较小,但收获却是挺大的。我将其看作是 GIFshop 的改进版本。
(4)声音+图片
Picle 是 一款让你在拍摄相片的同时也记录下一段音频的应用。它的好处是让 “画外音” 这一有趣的角色参与照片的叙事。相比上述应用,Picle 进入了另个维度,它考虑到图片的叙事瓶颈,并试图通过加入音频来突破。Picle 所面临的问题是,它建立了一种新的格式,而这种格式目前还只能在 Picle 体系内分享。
后滤镜时代里各支团队在不同方向上设定了不同的瓶颈,并通过一定的方法来突破。思考的起点无一例外的定在了增强图片叙事能力之上。从目前的情况来看,有一些事项值得注意:
· 体积:不能因为增强了效果而变得臃肿。
· 题材:不能因为特别适合某种题材而狭隘了用户的使用场景。
· 格式:在现有流行的格式上入手,避免使用新格式。
· 门槛:在用户利益和使用复杂度上寻求平衡。
· 多媒体:在图片上做加法,但不能演变成拍摄视频。
相信随着硬件技术的增强,手机将成为一类新的照相设备。它也许替代不了传统的相机,但它却能因为应用而变得不可替代。而可以预见的是,滤镜不会是手机照相的最后一站。
- Android Camera 实时滤镜(三)
- Android Camera 实时滤镜
- Android Camera 实时滤镜(一)
- Android Camera 实时滤镜(四)
- Android Camera 实时滤镜(五)
- Android Camera 实时滤镜(六)
- Android Camera 实时滤镜(七)
- Android Camera 实时滤镜(八)
- Android Camera 实时滤镜 (二)
- [Android-Camera开发]Android平台Camera实时预览数据处理即实时滤镜实现方法探讨(三)--通过Shader实现YUV转换RBG
- Android平台Camera实时滤镜实现方法探讨(三)--通过Shader实现YUV转换RBG
- Android平台Camera实时滤镜实现方法探讨(三)--通过Shader实现YUV转换RBG
- 【Camera】Android平台Camera实时滤镜实现方法
- Android平台Camera实时滤镜实现方法探讨(八)--滤镜基本制作方法(二)简单美颜滤镜
- Android平台Camera实时滤镜实现方法探讨(八)--滤镜基本制作方法(二)简单美颜滤镜
- Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜
- Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜
- Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简介(20160118更新)
- jQuery Datatable 实用简单实例
- 黑马程序员Java 框架的简单例子
- 技术人才的出路在哪里,5种选择和2种思路
- storyboard切换程序进入页面
- 关于iOS和OS X废弃的API
- Android Camera 实时滤镜(三)
- Html5系列(十)播放视频
- 有点意思
- C语言printf函数详解
- 正确使用Block避免Cycle Retain和Crash、、、block学习资料仅供参考
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
- 通过implib生成lib
- 指针 和 数组
- jQuery Datatable 自定义列