使用已使用的流时MediaLibrary.SavePicture失败

时间:2012-12-05 20:36:18

标签: c# silverlight windows-phone-7 stream cameracapturetask

我需要将CameraCaptureTask捕获的照片保存在手机的媒体库中,同时我想在Image控件中显示此照片。问题是我首先尝试通过访问其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);
        }
    }

代码在最后一行崩溃,错误:

  

价值不在预期范围内。

这里可能出现什么问题?

提前谢谢。

1 个答案:

答案 0 :(得分:3)

在调用SavePicture方法之前,您应该在开头设置Stream,如下所示:

e.ChosenPhoto.Seek(0, System.IO.SeekOrigin.Begin);