4

WpxHp のプレビューがあり、HxW の写真を撮りたいので、プレビューの 1 つでなく、撮影する写真と同じ縦横比のプレビュー ウィンドウをユーザーに表示してもらいます。TextureView を使用してプレビューをトリミングするにはどうすればよいですか?

- 編集

私が考えたのは、スケール マトリックスを使用して画像を歪め、TextureView のサイズ変更を補償することです。より詳しく説明させてください。
ターゲット プレビュー (画像) のサイズは (W,H) です。したがって、TextureView のサイズを (W,H) に変更する必要があります。これは、単純に行列 S で表現できる不均一な線形スケーリングである歪みを意味します。したがって、ビューのサイズを変更する前に inv(S) で画像をスケーリングすると、プレビューの同じ元の寸法を取得する必要があります (したがって、同じ縦横比)ただし、TextureView のサイズが変更された場合、これはクロップと同等です。試してみましたがうまくいくようですが、別の方法を探しています

4

1 に答える 1

0

私がなんとかしてうまくいったのは、スケールを追加することだけです。

カメラ出力の一部を使用して textureview を作成したかったのですが、プレビューを呼び出さなければ作成できませんでした。

そのため、カメラと画面の比率がキャプチャを開始するのに最適な解像度を決定した後、カメラのキャプチャの高さと表示したい高さのスケール比を取得します。

mPreviewSize = chooseOptimalSize(...);

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