网上对于Android相机的开发博文较少,碰巧闲着无聊,遂完成此工程,仅供学习交流,可根据地址中的示例完成类似于美图秀秀的APP,包含40+种滤镜与实时美颜与后处理美颜功能。若对您有帮助,点开地址并且点击右上角的Star。
1.相机预览模式
示例见: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并保存。
2.照片模式:
示例:com.seu.magiccamera.activity.ImageActivity
方法同相机模式,需要通过setImageBitmap(bitmap)来载入图像。
import com.seu.magicfilter.filter.advance.image
------可调节对比、色调、锐化、曝光、亮度、饱和度6个参数
保存采用将图片绘制到等大小的framebuffer,并读取像素数据,封装成Bitmap并保存。
3.相机输入:
import com.seu.magicfilter.filter.base.MagicCameraInputFilter
更改GPUImageView中在JNI将YUV转换RGB的模式,减少时间消耗约20-50ms。
通过surfaceTexture与OpenGL ES绑定获取纹理id,实现预览数据与屏幕输出的绑定
若无滤镜选择,将该纹理输出到屏幕
若有滤镜选择,将该纹理输出到FrameBuffer,之后所有的滤镜的绘制纹理为该framebuffertexture。
4.实时美颜滤镜:
import com