使用Android Camera2 API裁剪预览图像

问题描述 投票:0回答:1

目标是在表面上裁剪来自Camera2 api捕获会话的帧的预览,但不裁剪将自己创建的视频。

例如,我有一个1920x108016:9)的流媒体分辨率,屏幕尺寸(例如)2000x30002:3 - > 6:916:24,让我们选择第二个变体),所以我想要我的视频在原始的流媒体分辨率 - 1920x1080,但我的预览填充所有可用的空间没有View调整大小 - 所以它应该是5333x3000(只是使用与流分辨率相同的宽高比来填充矩形区域),以及然后将“与此表面分辨率相对应的帧数据(即,我认为,5333x2000)”“切割”为2000x3000(只需从顶部和底部移除(5333 - 2000) / 2)。

可能吗?

P.S。:糟糕的是google sample for camera2 api调整了视图本身,这些“空白区域”对我来说是不受欢迎的。我没有找到任何与我的问题密切配合的东西。

P.S.S。:AFAIU this SO solution裁剪来自相机本身的框架,但我需要我的视频处于原始分辨率。

android android-camera2
1个回答
1
投票

如果你正在使用TextureView,你可以调整它的transform matrix来放大预览(并在过程中切掉边缘)。阅读现有的矩阵,修正纵横比并将其放大,然后save the new matrix

但请注意,保存不同于您向用户显示的视野可能会让您产生负面反应 - 请使用预览来构建他们想要录制的内容,以及您节省的内容是否有额外的内容,录制的视频与预期不符。当然,也许这不是您的用例的关注点。

© www.soinside.com 2019 - 2024. All rights reserved.