Android Camera 實時濾鏡(八)

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優化佈局

相關文章
相關標籤/搜索