通过GPUImage实现40+种滤镜与实时美颜功能

推荐一个滤镜和美颜功能实现项目,包含40+种滤镜与实时美颜与后处理美颜功能,非常强大。

相机预览模式

示例见:com.seu.magiccamera.activity.CameraActivity

  • 需要自行创建一个glsurfaceview
GLSurfaceView glSurfaceView = (GLSurfaceView)findViewById(R.id.glsurfaceView);  
FrameLayout.LayoutParams params = new LayoutParams(Constants.mScreenWidth, Constants.mScreenHeight);  
glSurfaceView.setLayoutParams(params);    
mMagicCameraDisplay = new MagicCameraDisplay(this, glSurfaceView);
  • 通过setFilter(int)来更换滤镜
  • 拍照采用将图片绘制到等大小的framebuffer,并读取像素数据,封装成Bitmap并保存。

照片模式:

  • 示例:com.seu.magiccamera.activity.ImageActivity
  • 方法同相机模式,需要通过setImageBitmap(bitmap)来载入图像。
  • import com.seu.magicfilter.filter.advance.image ------可调节对比、色调、锐化、曝光、亮度、饱和度6个参数
  • 保存采用将图片绘制到等大小的framebuffer,并读取像素数据,封装成Bitmap并保存。

相机输入:

  • import com.seu.magicfilter.filter.base.MagicCameraInputFilter
  • 更改GPUImageView中在JNI将YUV转换RGB的模式,减少时间消耗约20-50ms。
  • 通过surfaceTexture与OpenGL ES绑定获取纹理id,实现预览数据与屏幕输出的绑定
  • 若无滤镜选择,将该纹理输出到屏幕
  • 若有滤镜选择,将该纹理输出到FrameBuffer,之后所有的滤镜的绘制纹理为该framebuffertexture。

实时美颜滤镜:

  • import com.seu.magicfilter.filter.advance.common.MagicBeautyFilter
  • 可与MagicCameraInputFilter合并作为相机输入层,将每个滤镜都加上美颜效果
  • 可设置美颜强度(1-5),方法:setBeautyLevel(int level)

项目效果图:

原文发布于微信公众号 - 何俊林(DriodDeveloper)

原文发表时间:2018-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏coding...

Objective-C 使用核心动画CAAnimation实现动画先来看看效果吧Demo地址

https://github.com/gongxiaokai/CAAnimationDemo

933
来自专栏大数据风控

如何在R中绘制热力地图

一、首先绘画出地图map 地图(map) 按一定的比例运用符号、颜色、文字注记等描绘显示地球表面的自然地理、 行政区域、社会经济状况的图形。 地...

39310
来自专栏小古哥的博客园

CSS3边框图片-像素虚边的问题

虽然CSS3新增了这个功能,但是在W3school里面并没有给出具体详细的解释,还好网上不乏大神给你我们很全面的解释其中的原理-css3:border-imag...

2614
来自专栏十月梦想

html常用标签标记

本博客所有文章如无特别注明均为原创。作者:十月梦想 ,复制或转载请以超链接形式注明转自 十月梦想博客 。 原文地址《html常用标签标记》

1693
来自专栏偏前端工程师的驿站

语义化HTML:i、b、em和strong标签

一、前言                             在HTML4.1中i和b作为表象标签分别表示斜体和粗体样式,而强调样式与内容分离的XHTML中...

2249
来自专栏腾讯社交用户体验设计

web图像的常见应用策略与技巧

1101
来自专栏PPV课数据科学社区

《用地图说话》之:十字绣中国热力数据地图

作图思路: 准备一块300*300小单元格组成的区域,对照地图图形,在每个省图形范围内的单元格填入该省的数据,然后对这些单元格应用条件格式->色阶,就形成了一幅...

3073
来自专栏IMWeb前端团队

如何使用 CSS Grid 布局 IOS11 新的控制中心

本文作者:IMWeb 结一 原文出处:IMWeb社区 未经同意,禁止转载 昨天 IOS11 就可以开始安装更新了,下图就是它带来的新的控制中心界面,是...

1966
来自专栏数据小魔方

think-cell chart系列18——复合图表与次坐标轴

今天跟大家分享的是think-cell chart系列的第18篇——复合图表与次坐标轴。 今天要跟大家讲解如何在think-cell chart中开启次坐标轴,...

1.1K7
来自专栏IMWeb前端团队

利用canvas实现一个抠图小工具

利用canvas实现一个抠图小工具 0 前言 作为新一代的前端开发工程师,PS抠图切图已经不是必备技能了,我们有UI/交互/视觉等更专业的设计同学帮我们做这个事...

4325

扫码关注云+社区

领取腾讯云代金券