MagicCamera是Adroid平台开源相机项目,具有包括实时美颜等40种实时滤镜,功能包括对图片进行磨皮/美白等后期处理。
1.相机预览模式示例见:com.seu.magiccamera.activity.CameraActivity需要自行创建一个glsurfaceviewGLSurfaceViewglSurfaceView=(GLSurfaceView)fidViewById(R.id.glsurfaceView);FrameLayout.LayoutParamsparams=ewLayoutParams(Costats.mScreeWidth,Costats.mScreeHeight);glSurfaceView.setLayoutParams(params);mMagicCameraDisplay=ewMagicCameraDisplay(this,glSurfaceView);通过setFilter(it)来更换滤镜拍照采用将图片绘制到等大小的framebuffer,并读取像素数据,封装成Bitmap并保存。
2.照片模式:示例:com.seu.magiccamera.activity.ImageActivity方法同相机模式,需要通过setImageBitmap(bitmap)来载入图像。importcom.seu.magicfilter.filter.advace.image------可调节对比、色调、锐化、曝光、亮度、饱和度6个参数保存采用将图片绘制到等大小的framebuffer,并读取像素数据,封装成Bitmap并保存。
3.相机输入:importcom.seu.magicfilter.filter.base.MagicCameraIputFilter更改GPUImageView中在JNI将YUV转换RGB的模式,减少时间消耗约20-50ms。通过surfaceTexture与OpeGLES绑定获取纹理id,实现预览数据与屏幕输出的绑定若无滤镜选择,将该纹理输出到屏幕若有滤镜选择,将该纹理输出到FrameBuffer,之后所有的滤镜的绘制纹理为该framebuffertexture。
4.实时美颜滤镜:importcom.seu.magicfilter.filter.advace.commo.MagicBeautyFilter可与MagicCameraIputFilter合并作为相机输入层,将每个滤镜都加上美颜效果可设置美颜强度(1-5),方法:setBeautyLevel(itlevel)参见:Adroid平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜










评论