我正在尝试将Android camera2 API与一些简单的RenderScript脚本结合使用,以操纵相机预览。 我正在努力弄清楚在显示预览之前可以在哪里访问预览的各个框架。我想主要的问题是我对表面和纹理的了解有点模糊
到目前为止,我得到的最好结果是完全忽略了renderscript代码!如果我尝试处理onSurfaceTextureAvailable周围的所有内容,那么一切都会被跳过。 我的问题是,这是我应该在哪里挑选图像以将图像发送到RS内核吗?
到目前为止,它看起来像这样: 私人TextureView.SurfaceTextureListener mSurfaceTextureListener = new TextureView.SurfaceTextureListener(){ @Override public void onSurfaceTextureAvailable(SurfaceTexture surface,int width,int height){ setUpCamera(width,height); mSurface =新的Surface(表面); mWidth =宽度; mHeight =高度;
Type.Builder tb = new Type.Builder(mRS,Element.RGBA_8888(mRS));
tb.setX(width);
tb.setY(height);
mOutAlloc = Allocation.createTyped(mRS, tb.create(), Allocation.USAGE_SCRIPT | Allocation.USAGE_IO_OUTPUT);
ScriptIntrinsicBlur scriptIntrinsicBlur = ScriptIntrinsicBlur.create(mRS, Element.RGBA_8888(mRS));
mOutAlloc.setSurface(mSurface);
scriptIntrinsicBlur.setRadius(10);
scriptIntrinsicBlur.forEach(mOutAlloc);
mRS.finish();
mOutAlloc.ioSend();
connectCamera();
}
作为示例,这基本上应该只是模糊预览。但是它似乎并没有做很多事情。任何帮助深表感谢!谢谢