【发布时间】:2014-10-21 06:46:57
【问题描述】:
我有一个 WpxHp 预览,我想拍摄 HxW 图片,因此我希望用户看到一个预览窗口,该窗口与我要拍摄的图片具有相同的纵横比,而不是预览窗口。 如何使用 TextureView 裁剪预览?
--编辑
我的想法是使用比例矩阵来扭曲图像以补偿 TextureView 调整大小,让我解释一下:
我的目标预览(图像)尺寸为(W,H)。因此我需要将 TextureView 的大小调整为 (W,H)。这意味着失真只是可以由矩阵 S 表示的非均匀线性缩放。因此,如果我在调整视图大小之前使用 inv(S) 缩放图像,我应该获得与预览相同的原始尺寸(因此具有相同的纵横比)但是调整了 TextureView 的大小,这相当于裁剪。
我试过了,它似乎有效,但我正在寻找另一种方法
【问题讨论】:
-
您可以看到在 Grafika 中操作相机预览的示例——参见“来自相机的纹理”活动。 github.com/google/grafika
-
感谢您的提示!这很有趣。但是它不使用 TextureView 组件,而且它似乎没有裁剪任何东西,而是在支持的预览尺寸中搜索匹配
-
使用滑块“缩放”。它有效地裁剪了源图像,并将其放大以匹配当前帧大小。 TextureView 与 SurfaceView 并不真正相关。这只是 GLES 的输出。
-
@mb_ 你找到解决方案了吗?因为我面临同样的问题,但无法产生结果。如果您找到了解决方案,请与我们分享。谢谢。
标签: android camera crop preview textureview