Android GPUImage源码分析(二) Brightness滤镜的使用
以GALLERY选图添加Brightess滤镜为例
一、点击CHOOSE FILTER按钮,会拥有很多滤镜选项的弹框,选中Brightness滤镜。
private fun createFilterForType(context: Context, type: FilterType): GPUImageFilter {
return when (type) {
FilterType.HUE -> GPUImageHueFilter(90.0f)
FilterType.BRIGHTNESS -> GPUImageBrightnessFilter(1.5f) //创建亮度滤镜
}
}
二、通过回调,然后通过switchFilterTo(filter) 方法切换滤镜。
1、赋值新的滤镜。gpuImageView.filter = filter
2、并根据滤镜产生一个滤镜调节适配器用于调节滤镜的亮度。 filterAdjuster = FilterAdjuster(filter)。根据 GPUImageBrightnessFilter 返回的是BrightnessAdjuster(filter)
3、请求再渲染 gpuImageView.requestRender()
三、通过进度条调整图片的亮度
1、filterAdjuster?.adjust(progress) 其实调用下面方法通过滤镜去调整图片的亮度 override fun adjust(percentage: Int) { filter.setBrightness(range(percentage, -1.0f, 1.0f)) } 2、 gpuImageView.requestRender()
四、保存带有滤镜效果的图片
调用saveImage()方法-->gpuImageView.saveToPictures("GPUImage", fileName)