我使用的是Visual studio 2012、c#、silverlight、windows phone 8应用程序。
我们从We服务中获取数据,然后通过we服务获得一个base64字符串的图片。
我将它转换为字节数组,现在我想保存它,以便windows phone的存储,使用内存流?我不知道这是不是正确的方法。我不想将它保存到独立存储中,只保存在本地文件夹中,因为我想在一个人点击链接后显示图片。
这就是我到目前为止所拥有的。
byte[] ImageArray;
var image = Attachmentlist.Attachment.ToString();
imagename = Attachmentlist.FileName.ToString();
ImageArray = Convert.FromBase64String(image.ToString());
StorageFolder myfolder = Windows.Storage.ApplicationData.Current.LocalFolder;
await myfolder.CreateFileAsync(imagename.ToString());
StorageFile myfile = await myfolder.GetFileAsync(imagename.ToString());
MemoryStream ms = new MemoryStream();那么,在初始化内存流之后,如何获取字节数组并将其写入存储文件,然后再次检索它?
发布于 2013-06-03 15:18:57
要将文件写入光盘,请尝试以下代码:
StorageFile sampleFile = await myfolder.CreateFileAsync(imagename.ToString(),
CreateCollisionOption.ReplaceExisting);
await FileIO.WriteBytesAsync(sampleFile, ImageArray);内存流创建在内存中写入的流,因此它不适用于此问题。
发布于 2014-03-13 19:41:28
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile imageFile = await folder.CreateFileAsync("Sample.png", CreationCollisionOption.ReplaceExisting);
using (IRandomAccessStream fileStream = await imageFile.OpenAsync(FileAccessMode.ReadWrite))
{
using (IOutputStream outputStream = fileStream.GetOutputStreamAt(0))
{
using (DataWriter dataWriter = new DataWriter(outputStream))
{
dataWriter.WriteBytes(imageBuffer);
await dataWriter.StoreAsync();
dataWriter.DetachStream();
}
//await outputStream.FlushAsync();
}
//await fileStream.FlushAsync();
}https://stackoverflow.com/questions/16891574
复制相似问题