我最近在Camera 2 API上工作,我的設備有16:9的屏幕比例,但是我的相機傳感器是4:3。所以我得到的預覽尺寸是4:3。我想知道有沒有什麼方法可以裁剪尺寸,只顯示16:9的部分?我嘗試了很長時間,並沒有找到任何相機2的幫助。Android Camera 2,如何裁剪預覽尺寸
我目前的相機代碼是類似於camera 2 basic sample。
那麼我應該如何裁剪預覽,只顯示紋理視圖上的16:9部分?
謝謝!
我最近在Camera 2 API上工作,我的設備有16:9的屏幕比例,但是我的相機傳感器是4:3。所以我得到的預覽尺寸是4:3。我想知道有沒有什麼方法可以裁剪尺寸,只顯示16:9的部分?我嘗試了很長時間,並沒有找到任何相機2的幫助。Android Camera 2,如何裁剪預覽尺寸
我目前的相機代碼是類似於camera 2 basic sample。
那麼我應該如何裁剪預覽,只顯示紋理視圖上的16:9部分?
謝謝!
您可以創建一個SurfaceTexture
,比例爲4:3而不是16:9。
您可以使用該示例項目中的自定義視圖或使用新的ConstraintLayout
創建自己的視圖,並將寬度(或反轉)的高度與16:9的比率設置爲1。
然後,當你設置你的紋理大小:
texture.setDefaultBufferSize(width, height)
你會得到不問題streching,因爲你的質地相同的比例作爲攝像頭輸出。
希望這有助於
你必須做 setUpCameraOutputs(int width, int height)
一些調試和檢查你選擇
// Danger, W.R.! Attempting to use too large a preview size could exceed the camera
// bus' bandwidth limitation, resulting in gorgeous previews but the storage of
// garbage capture data.
mPreviewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class), rotatedPreviewWidth,
rotatedPreviewHeight, maxPreviewWidth, maxPreviewHeight, largest);
也許你要好好選擇一些有輸出的大小的一部分。
對此問題的回答在鏈接中提供[Android 5.0預覽表面上的錯誤裁剪區域和捕獲的靜止圖像](http://stackoverflow.com/questions/26583489/android-5-0-wrong-crop-regions -on-預覽表面和捕獲的靜止圖像) – Chandana