Android OpenGL camera2纹理分辨率

时间:2018-02-26 12:32:20

标签: android opengl-es android-camera2

简介

我使用CaptureRequest.Builder并提供两个表面作为目标:a SurfaceTexture用于绘制GL,ImageReadergetSurface())用于处理帧。< / p>

我通过设置surfaceTexture.setDefaultBufferSize并创建ImageReader.newInstance来设置所需的分辨率640x480。

问题

似乎SurfaceTexture OpenGL纹理获得的图像与640x480(4:3)不同,更像是2560x1440(16:9)(SurfaceTexture占据全屏,见< strong> IMG 3 )。必须注意的是,两部手机具有相同的分辨率宽高比 16:9 。 (故意留下从侧面偏移的纹理)。

您可以在显示器屏幕上看到 IMG 1 IMG 2 IMG 3 是当前活动视图中的手机屏幕截图正在显示相机预览。

问题

如何正确强制SurfaceTextureGLSurfaceView.Renderer从相机获取特定的(在这种情况下为4:3)宽高比纹理图像,以获得任意大小的视图?

相关

必须注意的是,an app解决了问题,但they change the view size符合所需的宽高比。

另见

IMG 1 - 显示的源图片: enter image description here

IMG 2 - 良好的宽高比(Google Nexus 5 - Android 6.0.1): enter image description here

IMG 3 - 纹理宽高比不佳(LG-D855 - Android 5.0) enter image description here

1 个答案:

答案 0 :(得分:0)

&#34;固定&#34;通过将LG手机更新到Android 6.0的问题。