標籤:android camera 即時濾鏡
一、Android Camera可以做哪些?1、功能
- 拍攝相片
- 視頻錄製
- 取景器(掃描類應用,如Face Service,名片識別,條碼識別)
2、根據Camera API實現自己的拍照程式,共7步Created with Rapha?l 2.1.21.初始化 SurfaceHolder2.相機執行個體 SurfaceCreated3.回調 SurfaceChanged4.清理 SurfaceDestroyed5.布局 SurfaceView6.按鈕 添加拍照按鈕
二、Camera Preview是什嗎?
網路攝影機返回的RAW資料經過isp處理後形成yuv資料,android系統將該資料繪製到取景區上,不斷繪製幀資料形成即時預覽資料。
三、如何擷取Camera Preview中的資料?
- Camera.PreviewCallback
- setPreviewCallback
螢幕上顯示一個新的預覽幀時調用onPreviewFrame方法(時時擷取)
- setPreviewCallbackWithBuffer
其與setPreviewCallback的工作方式相同,但要求指定一個位元組數
組作為緩衝區,用於預覽映像資料(addCallbackBuffer)
四、Android Camera 即時濾鏡怎麼做?Created with Rapha?l 2.1.20.取景區大小設定為1像素1.取景區擷取預覽幀資料yuv2.擷取來的YUV420SP與RGB進行轉換3.進行濾鏡演算法渲染4.將處理後的圖層繪製於螢幕上
YUV轉RGB的演算法,轉換的公式一般如下,也是線性關係:
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
問題
1、螢幕卡頓,使用者體驗低
2、效能低,影響系統效能
如何最佳化?
- 提高流程度
映像渲染採用OpenGL ES SurfaceTexture
- 提高效能
GPU最佳化
Android Camera 即時濾鏡(八)