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