2016-04-21 2 views
1

Так я использую https://github.com/CyberAgent/android-gpuimage, и я хочу, чтобы добиться этого (применить фильтр только к зоне изображений):Android GPU образом, как применить фильтр к части изображений

enter image description here

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) 

или мне нужно идти глубже и сделать пользовательский шейдер?

ответ

1

Вы должны написать свой собственный фильтр с помощью самописного шейдера фрагментов. В флеш-шейдере вы должны проверить, для какого фрагмента будет применен фильтр.

Смежные вопросы