我有一個相機功能的應用程序。我正在使用Android Camera2 API。我發現,如果ImageReader
被配置爲提供的JPEG一些Android設備(如的Nexus 6P的Nexus 5)更好地工作:如何爲我的Android相機應用程序選擇ImageReader緩衝區類型?
imageReader = ImageReader.NewInstance(width, height, ImageFormatType.Jpeg, 2);
還有一些Android設備(如的Nexus 7 2013)更好地工作,如果ImageReader
是配置來提供,也就是說,RGBA_8888
:
imageReader = ImageReader.NewInstance(width, height, (ImageFormatType)1 /* PixelFormat.RGBA_8888 */, 2);
,工程與JPEG格式更好,如果我用吐出這個錯誤的設備RGBA_8888
:
[ImageReader_JNI] Producer output buffer format: 0x22, ImageReader configured format: 0x1
與RGBA緩衝效果更好的設備吐出了這樣的警告,如果我使用JPEG文件:(它仍然有效,但它很慢,足以捕獲的圖像暗。)
[ImageReader_JNI] ImageReader_lockedImageSetup: Receiving JPEG in HAL_PIXEL_FORMAT_RGBA_8888 buffer.
我必須做一些處理上如果我能夠將相機配置爲只是吐出某種位圖而不是JPEG,那麼最終它會更好,因爲我必須在繼續之前將JPEG轉換爲Bitmap
。
我該如何選擇傳遞給ImageReader
的緩衝區類型?
你的用例是什麼?單一快照(每秒捕獲次數不多)或連續捕獲(〜30fps)? –
我有一個預覽表面,它會持續捕捉,直到您點擊拍照按鈕,此時它會單次捕捉到「ImageReader」。 –