# android-opencamera拍照录像美颜 **Repository Path**: nnddkj/android---photo-video-beauty ## Basic Information - **Project Name**: android-opencamera拍照录像美颜 - **Description**: android-opencamera拍照录像美颜 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 15 - **Forks**: 8 - **Created**: 2020-08-21 - **Last Updated**: 2024-07-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpenCamera #### opencamera是一套高性能的相机框架,基于opengles+glsurfaceview,能实现实时滤镜,拍照,录制短视频,美颜磨皮等功能。 # 效果图我录制一个视频,放到源码目录下 来自于 https://github.com/moo611/opencamera-for-android 也可以参考这个 https://github.com/almalence/OpenCamera # 集成 #### 版本号 [![](https://www.jitpack.io/v/moo611/OpenCamera.svg)](https://www.jitpack.io/#moo611/OpenCamera) ```gradle allprojects { repositories { ... maven { url 'https://www.jitpack.io' } } } dependencies { implementation 'com.github.moo611:OpenCamera:latestversion' } //注意在android代码块里添加java8支持!! ``` #### 需要添加jdk 1.8支持 ```gradle compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } ``` #### 注意,由于demo里用的androidX,因此如果您的项目用的是v4或者v7包,会出现manifest不兼容的情况,有三种解决方案 #### (1)升级您的应用到androidX #### (2)直接导入module的方式导入我的library #### (3)用1.0.4及以下版本(不建议) # 使用 #### 添加权限 ```xml ``` #### xml布局文件 ```xml ``` #### 开启或关闭美颜(默认开启) ```java mCameraView.enableBeauty(true); ``` #### 美颜程度(0~1) ```java mCameraView.setBeautyLevel(0.5f); ``` #### 添加滤镜 ```java private Listfilters = new ArrayList<>(); ... filters.add(FilterFactory.FilterType.Original); filters.add(FilterFactory.FilterType.Sunrise); filters.add(FilterFactory.FilterType.Sunset); filters.add(FilterFactory.FilterType.BlackWhite); filters.add(FilterFactory.FilterType.WhiteCat); filters.add(FilterFactory.FilterType.BlackCat); filters.add(FilterFactory.FilterType.SkinWhiten); ``` #### 切换滤镜 ```java mCameraView.updateFilter(filters.get(pos)); ``` #### 切换镜头 ```java mCameraView.switchCamera(); ``` #### 拍照 ```java mCameraView.takePicture(new FilteredBitmapCallback() { @Override public void onData(Bitmap bitmap) { ... } }); ``` #### 录制视频 ```java private boolean isRecording = false; // 录制状态 ... btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { isRecording = !isRecording; mCameraView.changeRecordingState(isRecording); } }); ``` #### 设置视频保存路径及拍摄完成的回调 ```java mCameraView.setOuputMP4File(mFile); mCameraView.setrecordFinishedListnener(new FileCallback() { @Override public void onData(File file) { //update the gallery sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file))); } }); ``` # 项目比较 | | 多种滤镜 | 拍照 | 录制视频 | 是否维护 | |------| ------------ | ------------ | ------------ | ------------ | |grafika| X |X | √ | X | | gpuimage | √ | √ | X |X| |magiccamera| √ | X | X |X| |opencamera| √ | √ | √ |√ | ### 项目借鉴了不少前辈们的作品,喜欢的麻烦点个赞,谢谢。 #### google/grafika https://github.com/google/grafika #### android gpuimage https://github.com/cats-oss/android-gpuimage #### magic camera https://github.com/wuhaoyu1990/MagicCamera