Применение пользовательских фильтров к выходу камеры

Как применить пользовательские фильтры к отдельным кадрам на выходе камеры и показать их.

Что я пробовал до сих пор:

mCamera.setPreviewCallback(new CameraGreenFilter());

public class CameraGreenFilter implements PreviewCallback {

    @Override
    public void onPreviewFrame(byte[] data, Camera camera) {
        final int len = data.length;
        for(int i=0; i<len; ++i){
            data[i] *= 2;
        }
    }
}

Хотя его имя содержит «зеленый», на самом деле я хочу как-то просто изменить значения (в этом случае цвета будут немного усилены). Короче говоря, это не работает.

Я понял, что байтовый массив «data» является копией выходных данных камеры; но это не очень помогает, потому что мне нужен «настоящий» буфер.

Я слышал, вы можете реализовать это с openGL. Это звучит очень сложно.

Есть ли более простой способ? Иначе, как будет работать это отображение openGL-surfaceView?

Ответы на вопрос(1)

Ваш ответ на вопрос