Как применить специальные фильтры к одиночным кадрам на выходе камеры и показать их.
Что я пробовал до сих пор:
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;
}
}
}
-
Хотя его имя содержит "зеленый", я на самом деле хочу просто изменить значения каким-то образом (в этом случае цвета немного активизировались). Короче говоря, это не работает.
-
Я понял, что данные массива байтов - это копия вывода камеры; но это действительно не помогает, потому что мне нужен "настоящий" буфер.
-
Я слышал, что вы можете реализовать это с помощью openGL. Это звучит очень сложно.
Есть ли более простой способ? Иначе, как будет работать это отображение openGL-surfaceView?