所以我使用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)
或者我是否需要更深入地制作自定义着色器?
答案 0 :(得分:1)
您必须使用自编写的片段着色器编写自定义过滤器。在片段着色器中,您应该检查过滤器将应用哪个片段。