ChillingVan / android-openGL-canvas

An Android library that provides views using openGL canvas to draw things on SurfaceView or TextureView.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

關於Camera2 與 Camera1 成像結果旋轉角度不同

f9021003 opened this issue · comments

@ChillingVan 你好
我在Camera2 與 Camera1 成相旋轉角度問題 有一個疑問

首先 先稍微提一下一個觀念:
android dev doc中, 有提到camera2 api中 有SENSOR_ORIENTATION , 而這個值和手機設備的旋轉角度不一定會一致 (透過 getResources().getConfiguration().orientation取得)

如這篇文章所提到的: Android Camera2 API 錄影開發歷程

其中節錄一下他的圖片
device270

所以大部分的手機 , camera和設備角度, 都是 有 90度 or 270度 的差異

回到我到問題, (以手機 直立(portrait) 的情況下為例)

  • TextureCameraActivity.java範例中(此範例是用 caemra1 api) , 看到的結果如上述一致: 會呈現轉90(or 270)的結果 (我知道可以可透過canvas.rotate() 來進行校正 )

  • MultiTextureActivity.java範例中((此範例是用 caemra2 api), 看到的結果, 卻是已經與設備相同方向, 且還需透過setIsFlippedVertically() ,影像就可以正確

很明顯 GLSurfaceTextureProducerView.java 在 camera1 & camera2 api 時, 結果會有不同 : 在camera2 api時 ,android-openGL-canvas 底層會自動將影像轉90/270度, 並Flip.

所以想請問作者: 是否能夠讓GLSurfaceTextureProducerView 與camera2 api搭配使用時,能夠不要做任何影像旋轉呢??

感謝

这个库内部应该没做任何操作的,用flip的也只是例子canvasglsample的代码而已。MultiVideoTexture里的操作也只是一个例子。

关于Camera,推荐使用 https://github.com/natario1/CameraView 的CameraEngine部分,有需要的话再搭配这个库的绘制部分就可以了。因为这个库只是为渲染而用的,所以不会对Camera做操作的