我尝试从IsolatedStorage
获取图像流,然后为其指定位图图像,如下所示:
using (IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream(filePath, FileMode.Open, isolatedStorage))
{
BitmapImage image = new BitmapImage();
image.SetSource(fileStream);
return image;
}
但在image.SetSource(fileStream)
行中,我收到此错误:
无法找到该组件。 (HRESULT异常:0x88982F50)
更新我删除了使用块,但是当它到达该行时,仍然会发生错误。也许我在第一时间错误地写了文件?这就是我为保存文件所做的事情:
IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();
if (!isolatedStorage.DirectoryExists("MyImages"))
{
isolatedStorage.CreateDirectory("MyImages");
}
var filePath = Path.Combine("MyImages", name + ".jpg");
using (IsolatedStorageFileStream fileStream = new IsolatedStorageFileStream(filePath, FileMode.Create, isolatedStorage))
{
StreamWriter sw = new StreamWriter(fileStream);
sw.Write(image);
sw.Close();
}
答案 0 :(得分:1)
保存图片的代码错误。您正在编写image.ToString()
的结果,而不是实际图像。根据经验,请记住StreamWriter
用于将字符串写入流中。切勿尝试使用它来编写二进制数据。
using (var isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var fileStream = new IsolatedStorageFileStream(filePath, FileMode.Create, isolatedStorage))
{
var bitmap = new WriteableBitmap(image, null);
bitmap.SaveJpeg(fileStream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
}
}