如何将自定义滤镜应用于相机输出中的单个帧,并显示它们.
到目前为止我尝试过的:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然它的名字包含"绿色",但我实际上只是想以某种方式修改这些值(在这种情况下,颜色会稍微加强一些).长话短说,它不起作用.
我发现字节数组'data'是摄像头输出的副本; 但这并没有真正帮助,因为我需要'真正的'缓冲区.
我听说你可以用openGL来实现它.这听起来很复杂.
有没有更简单的方法?否则,这个openGL-surfaceView映射将如何工作?