# 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/#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