(Xamarin.Android)如果设备方向是横向的,请转动相机图片

时间:2017-11-13 12:54:56

标签: c# android xamarin.android android-camera textureview

我想制作一个Xamarin.Android应用程序,我可以捕捉像相机一样的图片......

当我拍摄照片时,我必须以正确的方向转动照片。因此,当方向是横向或颠倒时,我想把它变成肖像...... 但我不知道怎么做到这一点。

这是我的代码

 private async void TakePhotoButtonTapped(object sender, EventArgs e)
    {
        _camera.StopPreview();

        AlertDialog.Builder builder = new AlertDialog.Builder(activity);

        builder.SetMessage("Search for faces...");
        builder.SetTitle("Warten");

        AlertDialog dialog = builder.Create();

        dialog.Show();

        byte[] imageBytes;

        var image = _textureView.Bitmap;

        using (var imageStream = new MemoryStream())
        {
            await image.CompressAsync(Bitmap.CompressFormat.Jpeg, 50, imageStream);
            image.Recycle();
            imageBytes = imageStream.ToArray();
        }

        var base64image = Convert.ToBase64String(imageBytes);

        FaceRecognition faceRecognition = new FaceRecognition();
        var result = faceRecognition.SendPhoto(base64image);

        dialog.Hide();

        _camera.StartPreview();
    }

1 个答案:

答案 0 :(得分:1)

您可以使用Android.Content.Res.Orientation获取设备方向,当方向为Landscape时,使用RequestedOrientation 请求活动方向。

例如:

if (Resources.Configuration.Orientation == Android.Content.Res.Orientation.Landscape)
{
    RequestedOrientation = ScreenOrientation.Portrait;
}