1、Android Camera能夠作哪些?
一、功能
- 拍攝相片
- 視頻錄製
- 取景器(掃描類應用,如人臉識別,名片識別,條形碼識別)
二、根據Camera API實現本身的拍照程序,共7步
Created with Raphaël 2.1.2 1.初始化 SurfaceHolder 2.相機實例 SurfaceCreated 3.回調 SurfaceChanged 4.清理 SurfaceDestroyed 5.佈局 SurfaceView 6.按鈕 添加拍照按鈕
2、Camera Preview是什麼?
攝像頭返回的RAW數據通過isp處理後造成yuv數據,android系統將該數據繪製到取景區上,不斷繪製幀數據造成實時預覽數據。android
3、如何獲取Camera Preview中的數據?
- Camera.PreviewCallback
- setPreviewCallback
屏幕上顯示一個新的預覽幀時調用onPreviewFrame方法(時時獲取) - setPreviewCallbackWithBuffer
其與setPreviewCallback的工做方式相同,但要求指定一個字節數
組做爲緩衝區,用於預覽圖像數據(addCallbackBuffer)
4、Android Camera 實時濾鏡怎麼作?
Created with Raphaël 2.1.2 0.取景區大小設置爲1像素 1.取景區獲取預覽幀數據yuv 2.獲取來的YUV420SP與RGB進行轉換 3.進行濾鏡算法渲染 4.將處理後的圖層繪製於屏幕上
YUV轉RGB的算法,轉換的公式通常以下,也是線性的關係:
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U算法
問題
一、屏幕卡頓,用戶體驗低
二、性能低,影響系統性能markdown如何優化?
- 提升流程度
圖像渲染採用OpenGL ES SurfaceTexture
- 提升性能
GPU優化佈局