将图像从网络保存到Windows Phone 8.1 RT中的保存图片文件夹RT C#
如何将图像保存到Windows Phone 8.1 RT中的保存图片文件夹?我使用HttpClient从网上下载了图像。将图像从网络保存到Windows Phone 8.1 RT中的保存图片文件夹RT C#
你只需要这个
var url = "Some URL";
var fileName = Path.GetFileName(url.LocalPath);
var thumbnail = RandomAccessStreamReference.CreateFromUri(url);
var remoteFile = await StorageFile.CreateStreamedFileFromUriAsync(fileName, url, thumbnail);
await remoteFile.CopyAsync(KnownFolders.SavedPictures, fileName, NameCollisionOption.GenerateUniqueName);
您需要设置您的清单图片库功能。
如果您希望用户选择文件位置,您需要使用FileSavePicker和pictureLibrary作为SuggestedStartLocation。
如果你想将其保存,而用户选择你需要使用像这样的目标:我相信你需要设置你的清单中Pictures Library
capability这两种情况下
Windows.Storage.KnownFolders.picturesLibrary.createFileAsync
。
感谢mSpot公司在MSDN论坛上解决了这个问题。我现在使用的代码:
StorageFolder picsFolder = KnownFolders.SavedPictures;
StorageFile file = await picsFolder.CreateFileAsync("myImage.jpg", CreationCollisionOption.GenerateUniqueName);
string url = "http://somewebsite.com/someimage.jpg";
HttpClient client = new HttpClient();
byte[] responseBytes = await client.GetByteArrayAsync(url);
var stream = await file.OpenAsync(FileAccessMode.ReadWrite);
using (var outputStream = stream.GetOutputStreamAt(0))
{
DataWriter writer = new DataWriter(outputStream);
writer.WriteBytes(responseBytes);
writer.StoreAsync();
outputStream.FlushAsync();
}
谢谢,它解决了我的问题。 – 2015-03-25 09:59:42
有没有什么办法将BitmapImage源码转换为Btye数组,然后使用这个字节数组来保存图像,而不是从url获取流。 其实我想在我的应用程序中减少互联网的使用。 任何帮助将不胜感激。 :) – 2015-03-25 10:04:14
目前,我用这个本地实现:
var url = new Uri(UriString, UriKind.Absolute);
var fileName = Path.GetFileName(url.LocalPath);
var w = WebRequest.CreateHttp(url);
var response = await Task.Factory.FromAsync<WebResponse>(w.BeginGetResponse, w.EndGetResponse, null);
await response.GetResponseStream().CopyToAsync(new FileStream(ApplicationData.Current.LocalFolder.Path + @"\" + fileName, FileMode.CreateNew));
var file = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
await file.CopyAsync(KnownFolders.SavedPictures, fileName, NameCollisionOption.FailIfExists);
这看起来更好!我会在下一个版本中尝试。 – 2015-03-26 15:00:22
如何在Javascript中实现同样的东西? – Vikas 2015-11-23 07:05:57