首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Camera 2,如何裁剪预览大小

Android Camera 2,如何裁剪预览大小
EN

Stack Overflow用户
提问于 2015-11-24 00:44:38
回答 3查看 4.6K关注 0票数 5

我最近正在开发Camera 2 API,我的设备有16:9的屏幕比例,但我的相机传感器是4:3。所以我得到的所有预览尺寸都是4:3。我想知道有没有办法得到一个裁剪尺寸,并且只显示16:9的部分?我试了很长时间,但没有找到任何帮助的相机2。

我现在的相机代码和camera 2 basic sample很相似。

那么,我应该如何裁剪预览,并只在纹理视图上显示16:9的部分?

谢谢!!

EN

回答 3

Stack Overflow用户

发布于 2018-08-28 14:45:48

我在遇到同样的问题后answered a similar question,并且不能改变实际视图的纵横比来匹配相机输出(正如Sulfkain的答案所暗示的那样)。

答案在于Camera2BasicFragment中的configureTransform。虽然它们的功能主要用于定向,但缩放矩阵可以解决与相机输出形状错误的视图的缩放/纵横比问题。

票数 1
EN

Stack Overflow用户

发布于 2018-02-14 18:35:56

您可以使用您的比例4:3而不是16:9来创建SurfaceTexture

您可以使用该示例项目中的自定义视图,也可以使用新的ConstraintLayout创建自己的视图,并从宽度的16:9 (或反比)设置高度比率。

然后,当您设置纹理的大小时:

代码语言:javascript
复制
texture.setDefaultBufferSize(width, height)

你将不会有任何问题,因为你的纹理是相同的比例,你的相机输出。

希望这能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-02-14 18:44:28

您必须在setUpCameraOutputs(int width, int height)上进行一些调试,并检查您正在选择输出大小的部分

代码语言:javascript
复制
// 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);

也许你必须在那里硬选择一些东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33876196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档