В приложении Silverlight я сохраняю Растровое изображение , например:
public static void SaveBitmapImageToIsolatedStorageFile(OpenReadCompletedEventArgs e, string fileName)
{
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isfs = new IsolatedStorageFileStream(fileName, FileMode.Create, isf))
{
Int64 imgLen = (Int64)e.Result.Length;
byte[] b = new byte[imgLen];
e.Result.Read(b, 0, b.Length);
isfs.Write(b, 0, b.Length);
isfs.Flush();
isfs.Close();
isf.Dispose();
}
}
}
и , читаем , возвращаем так:
public static BitmapImage LoadBitmapImageFromIsolatedStorageFile(string fileName)
{
string text = String.Empty;
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!isf.FileExists(fileName))
return null;
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream isoStream = isoStore.OpenFile(fileName, FileMode.Open))
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(isoStream);
return bitmapImage; // "Catastrophic Failure: HRESULT: 0x8000FFFF (E_UNEXPECTED))"
}
}
}
}
, но это всегда дает мне ошибку " Катастрофический сбой: HRESULT: 0x8000FFFF (E_UNEXPECTED)) * ".
Я уже видел эту ошибку раньше, когда япопытался прочитать png файл с сервера, который на самом деле был текстовым файлом , поэтому я предполагаю, что растровое изображение не сохраняется правильно, я получил код здесь .
Может кто-нибудь увидеть, как BitmapImage не сохраняется правильно?Или почему это выдает мне эту ошибку?
Обновление:
Когда создается BitmapImage, я вижу, что записываемый массив байтов имеет длину 1876 байтови все они 0. Почему это будет?