我需要将使用CameraCaptureTask拍摄的照片保存在手机的媒体库中,同时我想在图像控件中显示这张照片。问题是我首先尝试通过访问其 Exif 数据来旋转图像,以便它在 Image 控件中以正确的方向显示。
private void cameraTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
int angle = GetAngleFromExif(e.ChosenPhoto);
WriteableBitmap currentImage = DecodeImage(e.ChosenPhoto, angle);
photoImage.Source = currentImage;
MediaLibrary medialibrary = new MediaLibrary();
medialibrary.SavePicture("test.jpg", e.ChosenPhoto);
}
}
代码在最后一行崩溃,并显示错误:
值不在预期范围内。
这里可能出了什么问题?
提前谢谢你。
在调用 SavePicture
方法之前,您应该在开头设置Stream
,如下所示:
e.ChosenPhoto.Seek(0, System.IO.SeekOrigin.Begin);