我是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 (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.
如何在我的代码中实现此方法?
答案 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);
}