# opencamera
**Repository Path**: bowen8013/opencamera
## Basic Information
- **Project Name**: opencamera
- **Description**: 自定义拍照,美颜滤镜,第三方框架一个 框架,opencamera for android。
- **Primary Language**: Android
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2022-03-19
- **Last Updated**: 2022-03-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 该项目 来自github OpenCamera 需要的环境 'com.android.tools.build:gradle:4.0.1' gradle-6.1.1-all.zip
#需要 ndk 支持
https://github.com/moo611/OpenCamera
# OpenCamera
#### opencamera是一套高性能的相机框架,基于opengles+glsurfaceview,能实现实时滤镜,拍照,录制短视频,美颜磨皮等功能。
# 效果图



# 集成
#### 版本号
[](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