5.4.3滤镜
在开始介绍示例前,我们先给大家介绍一下滤镜的功能。我们平时看到直播里的主播都非常漂亮、皮肤也非常好,其实大部分都是滤镜美化的功劳。直播软件和我们平时用的修图工具一样,它也可以有磨皮、美白、增减亮度、锐化等功能。直播中实现滤镜功能的话,我们用的是之前介绍的Yasea框架中依赖的MagicCamera库,MagicCamera是一个支持实时滤镜的相机和视频录像的组件,包含美颜等40余种实时滤镜相机、可拍照、录像、图片修改等功能。GitHub地址是https://github.com/wuhaoyu1990/MagicCamera ,下面我们简单给大家介绍一下MagicCamera的使用方法。
相机预览模式
相机实时预览功能,我们只需要在程序的布局文件中集成MagicCameraView组件,代码如下:
<com.seu.magicfilter.widget.MagicCameraView
    android:id="@+id/glsurfaceview_camera"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
在Activity代码中注册MagicCameraView组件,并创建MagicEngine对象中创建,通过调用MagicEngine对象中的方法来对相机、滤镜进行操作。
public class CameraActivity extends Activity{
    private MagicEngine magicEngine;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);
        MagicEngine.Builder builder = new MagicEngine.Builder();
        magicEngine = builder.build((MagicCameraView)findViewById(R.id.glsurfaceview_camera));
    }
}
设置滤镜方法
//参数如下:MagicFilterType.EARLYBIRD
public void setCamerFilter(int filterType){
    magicEngine.setFilter(filterType);
}
设置美颜强度
public void setCamerBeautyLevel(int level){
    magicEngine.setBeautyLevel(level);
}
保存图片方法
public void setSavepicture(File file, SavePictureTask.OnPictureSaveListener listener){
    magicEngine.savePicture(file, listener);
}
设置切换前后摄像头
public void setSwitchCamera(){
    magicEngine.switchCamera();
}
开启/关闭录制视频
//开启录制视频;如果没有设置视频地址的话,默认保存地址是SD卡根目录
public void setStartRecord(){
    magicEngine.startRecord();
}
//关闭录制视频
public void setStopRecord(){
    magicEngine.stopRecord();
}
MagicCamera部分滤镜与Instagram中样式对照表如下:
| MagicCamera | |
|---|---|
| MagicAmaroFilter | Instagram中Amaro滤镜 | 
| MagicAntiqueFilter | 复古滤镜 | 
| MagicBlackCatFilter | 黑猫滤镜,增强阴影与色调,颜色加深 | 
| MagicBrannanFilter | Instagram中Brannan滤镜 | 
| MagicBrooklynFilter | Instagram中Brooklyn滤镜 | 
| MagicCalmFilter | 平静滤镜,偏棕灰 | 
| MagicCoolFilter | 冰冷滤镜,偏蓝 | 
| MagicEarlyBirdFilter | Instagram中EarlyBird滤镜 | 
| MagicEmeraldFilter | 祖母绿滤镜 | 
| MagicEvergreenFilter | 常青滤镜 | 
| MagicFairytaleFilter | 童话滤镜 | 
| MagicFreudFilter | Instagram中Freud滤镜 | 
| MagicHealthyFilter | 健康滤镜 | 
| MagicHefeFilter | Instagram中Hefe滤镜 | 
| MagicHudsonFilter | Instagram中Hudson滤镜 | 
| MagicInkwellFilter | Instagram中Inkwell滤镜 | 
| MagicKevinFilter | Instagram中Kevin滤镜 | 
| MagicLatteFilter | 拿铁滤镜 | 
| MagicLomoFilter | Instagram中Lomo滤镜 | 
| MagicN1977Filter | Instagram中N1977滤镜 | 
| MagicNashvilleFilter | Instagram中Nashville滤镜 | 
| MagicNostalgiaFilter | 怀旧滤镜,偏绿系 | 
| MagicPixarFilter | Instagram中Pixar滤镜 | 
| MagicRiseFilter | Instagram中Rise滤镜 | 
| MagicRomanceFilter | 浪漫滤镜,粉红系 | 
| MagicSakuraFilter | 樱花滤镜,粉红系 | 
| MagicSierraFilter | Instagram中Sierra滤镜 | 
| MagicSkinWhitenFilter | 美白滤镜,增白皮肤 | 
| MagicSunriseFilter | 日出滤镜 | 
| MagicSunsetFilter | 日落滤镜 | 
| MagicSutroFilter | Instagram中Sutro滤镜 | 
| MagicSweetsFilter | 甜美滤镜 | 
| MagicTenderFilter | 温和滤镜 | 
| MagicToasterFilter | Instagram中Toaster滤镜 | 
| MagicValenciaFilter | Instagram中Valencia滤镜 | 
| MagicWarmFilter | 温暖滤镜 | 
| MagicWhiteCatFilter | 白猫滤镜 | 
| MagicXproIIFilter | Instagram中XproII滤镜 |