4

我有一个 WpxHp 预览,我想拍摄 HxW 图片,因此我希望用户看到一个与我要拍摄的图片具有相同纵横比的预览窗口,而不是预览窗口。如何使用 TextureView 裁剪预览?

- 编辑

我的想法是使用比例矩阵来扭曲图像以补偿 TextureView 调整大小,让我更好地解释一下:
我有一个目标预览(图像)大小,即(W,H)。因此我需要将 TextureView 的大小调整为 (W,H)。这意味着失真只是可以由矩阵 S 表示的非均匀线性缩放。因此,如果我在调整视图大小之前使用 inv(S) 缩放图像,我应该获得与预览相同的原始尺寸(因此具有相同的纵横比)但是调整了 TextureView 的大小,这相当于裁剪。我试过了,它似乎有效,但我正在寻找另一种方法

4

1 回答 1

0

我唯一能做到并且效果很好的就是增加一个比例。

我想用相机输出的一部分创建一个纹理视图,但如果不让预览被缩放,我就无法做到这一点。

所以在我决定什么是相机/屏幕比例的最佳分辨率开始捕捉之后,我得到了相机捕捉高度和我想要显示的高度之间的比例。

mPreviewSize = chooseOptimalSize(...);

int viewHeight = getDP(this, R.dimen.videoCaptureHeight);
float scaleY = mPreviewSize.getHeight() / viewHeight;
setScaleY(scaleY);
于 2017-04-25T11:07:41.607 回答