https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Camera
我在这里使用这个项目,正如我的标题所示,当你在androiddevice上拍照时,如果以肖像方式拍摄,图像会以横向显示。
对于iOS我完全没有问题只是在android上我收到了这个问题。
这就是我的CameraViewModel中的TakePicture任务的样子:
private async Task TakePicture ()
{
Setup();
ImageSource = null;
await this._mediaPicker.TakePhotoAsync(new CameraMediaStorageOptions { DefaultCamera = CameraDevice.Front, MaxPixelDimension = 400}).ContinueWith(t =>
{
if (t.IsFaulted)
{
var s = t.Exception.InnerException.ToString();
}
else if (t.IsCanceled)
{
var canceled = true;
}
else
{
var mediaFile = t.Result;
ImageSource = ImageSource.FromStream(() => mediaFile.Source);
return mediaFile;
}
return null;
}, _scheduler);
}
我在google搜索后尝试做的是在TakePicture函数中添加这行代码:
if (mediaFile.Exif.Orientation != ExifLib.ExifOrientation.TopLeft)
{
System.Diagnostics.Debug.WriteLine ("picture is not portrait");
}
一旦我在Android上拍了一张照片"图片不是肖像"显示在日志中,但我不太清楚从哪里开始。 如果我添加:
mediaFile.Exif.Orientation = ExifLib.ExifOrientation.TopLeft;
在if语句中,应用程序在拍照后崩溃。没有错误消息或没有。它只是关闭了。
答案 0 :(得分:1)
您可以在此处找到用于调整从Android相机捕获的图像方向的代码:https://forums.xamarin.com/discussion/comment/18786/#Comment_18786