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