我從列表視圖中獲取照片路徑並顯示詳細的圖像屏幕。 詳細頁面代碼在這裏。將媒體庫中的照片保存爲windows phone 8.1
//Imaged is my image control in Xaml.
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var imagePath = e.Parameter as string;
imaged.Source = new BitmapImage(new Uri(imagePath, UriKind.RelativeOrAbsolute));
var imgsource = imaged.Source;
}
我想通過單擊保存按鈕事件將此圖片保存在媒體庫中。
這是我的保存按鈕事件代碼。
private async void ApplicationBarIconButton_Click_SaveToPictures(object sender, RoutedEventArgs e)
{
FileSavePicker picker = new FileSavePicker();
// picker.FileTypeChoices.Add("PNG File", new List<string>() { ".png" });
picker.FileTypeChoices.Add("JPEG image", new string[] { ".jpg" });
picker.FileTypeChoices.Add("PNG image", new string[] { ".png" });
picker.FileTypeChoices.Add("BMP image", new string[] { ".bmp" });
picker.DefaultFileExtension = ".png";
picker.SuggestedFileName = "bomdiaimg";
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
StorageFile file = await picker.PickSaveFileAsync();
// StorageFile file = await picker.PickSaveFileAndContinue();
if (file != null)
{
RenderTargetBitmap renderTargetBitMap = new RenderTargetBitmap();
await renderTargetBitMap.RenderAsync(imaged, (int)imaged.Width, (int)imaged.Height);
var pixels = await renderTargetBitMap.GetPixelsAsync();
using (IRandomAccessStream randomAccessStream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, randomAccessStream);
byte[] bytes = pixels.ToArray();
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)renderTargetBitMap.PixelWidth, (uint)renderTargetBitMap.PixelHeight, 96, 96, bytes); await encoder.FlushAsync();
}
}
}
我無法保存圖片的錯誤是
在這裏的錯誤是一個例外。這種方法「這表明,使用picksavefile並繼續」但是,當我用這個方法則錯誤顯示下
StorageFile file = await picker.PickSaveFileAsync();
一些次綠線。無法理解這個問題。如何將圖片保存在媒體庫中
如果你正在尋找一種方法來保存*圖片*到文件,然後按[這個問題](http://stackoverflow.com/q/22896979/2681948)可以幫助你。 – Romasz
沒有幫助..你能否通過我的代碼向我發送確切的答案? – Arsal