android camera 显示过程,Android Camera2 API显示已处理的预览图像
澄清問題后編輯;最初的答案在底部
取決于您在哪里進行處理.
如果您正在使用RenderScript,則可以將Surface從SurfaceView或TextureView連接到分配(使用setSurface),然后將處理后的輸出寫入該分配并使用Allocation.ioSend()將其發送出去. HDR Viewfinder demo使用這種方法.
如果您正在進行基于EGL著色器的處理,則可以使用eglCreateWindowSurface將Surface連接到EGLSurface,將Surface作為native_window參數.然后,您可以將最終輸出渲染到該EGLSurface,當您調用eglSwapBuffers時,緩沖區將被發送到屏幕.
如果您正在進行本機處理,則可以使用NDK @L_404_4@寫入從Java和convert傳遞到ANativeWindow的Surface.
如果你正在進行Java級處理,那真的很慢而且你可能不想這樣做.但是可以使用新的Android M ImageWriter類,或者每幀上傳一個紋理到EGL.
或者如您所說,每幀都繪制一個ImageView,但這樣會很慢.
原始答案:
如果要捕獲JPEG圖像,只需將ByteBuffer的內容從Image.getPlanes()[0] .getBuffer()復制到byte []中,然后使用BitmapFactory.decodeByteArray將其轉換為Bitmap.
如果您正在捕獲YUV_420_888圖像,那么您需要將自己的轉換代碼從3平面YCbCr 4:2:0格式寫入您可以顯示的內容,例如RGB []的RGB值來創建位圖;遺憾的是,還沒有一個方便的API.
如果您正在捕獲RAW_SENSOR圖像(拜耳模式未處理的傳感器數據),那么您需要進行大量圖像處理或只需保存DNG.
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android camera 显示过程,Android Camera2 API显示已处理的预览图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 插入耳机 使用自身mic
- 下一篇: android studio 搭建环境,