所以我正在使用https://github.com/CyberAgent/android-gpuimage,并且想要实现这一点(仅将滤镜应用于图像区域):
Uri imageUri = ...;
mGPUImage = new GPUImage(this);
mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.surfaceView));
mGPUImage.setImage(imageUri);
sepiaFilter = new GPUImageSepiaFilter()
mGPUImage.setFilter(sepiaFilter);
有没有办法做类似的事情:
TextureZone textureZone = new TextureZone(...);
sepiaFilter.setFilterOnlyOn(textureZone)
还是需要更深入地制作自定义着色器?
最佳答案
您必须使用自写片段着色器编写自定义过滤器。在片段着色器中,您应该检查哪个片段将应用于过滤器。