将编辑过的图像保存到相机胶卷

时间:2013-11-26 18:52:56

标签: c# windows-phone-8 xna stream

我是C#的新手并且正在学习为Windows Phone 8开发。我正在制作一个图像编辑应用程序。 有没有办法在相机胶卷中保存已编辑的图像而不是保存的图片。

使用PhotoChooserTask返回PhotoResult。

    private WriteableBitmap _imageBitmap = null;

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        PhotoChooserTask chooser = new PhotoChooserTask();
        chooser.Completed += choosenImage;
        chooser.Show();
    }

    private void choosenImage(object sender, PhotoResult e)
    {
        if (e.TaskResult != TaskResult.OK ) { return; }
        _imageBitmap.SetSource(e.ChosenPhoto);
        dummyImage.Source = _thumbImageBitmap;

        //MediaLibrary library = new MediaLibrary();
        //library.SavePictureToCameraRoll(String, Stream);
    }

我想将此PhotoResult(图像)保存在相机胶卷中。我做了一些研究并找到了

  

MediaLibrary.SavePictureToCameraRoll Method

此方法有助于

MediaLibrary.SavePictureToCameraRoll (String, Stream)
Save the specified image Stream as a Picture in the Windows Phone camera roll.

OR

MediaLibrary.SavePictureToCameraRoll (String, Byte[])
Save the specified byte array as a Picture in the Windows Phone camera roll.

如何在我的代码中实现此方法?

1 个答案:

答案 0 :(得分:0)

e.ChosenPhoto已经是一个流,所以你可以像这样设置它:

编辑:这应该解决使用流两次的问题。您可以简单地寻找流的开头并重用e.ChosenPhoto,但在我回到家之前我无法测试。

private void choosenImage(object sender, PhotoResult e)
{
    if (e.TaskResult != TaskResult.OK ) 
    { 
        return;
    }
    Stream theCopy = new Stream();
    e.ChosenPhoto.CopyTo(theCopy);
    e.ChosenPhoto.Seek( 0, SeekOrigin.Begin );

    _imageBitmap.SetSource(e.ChosenPhoto);
    dummyImage.Source = _thumbImageBitmap;

    MediaLibrary library = new MediaLibrary();
    library.SavePictureToCameraRoll(String, theCopy);
}