预处理camera2预览-使用渲染脚本和表面纹理

时间:2019-05-18 18:41:52

标签: android renderscript

我正在尝试将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();
    }

作为示例,这基本上应该只是模糊预览。但是它似乎并没有做很多事情。任何帮助深表感谢!谢谢

0 个答案:

没有答案