Używam ImageTools z codeplex, aby zapisać płótno jako png; jednak miałem ten sam problem, gdy używałem writeableBitmap.SaveJpeg()
. Dlatego problem nie dotyczy typu obrazu, ale raczej sposobu zapisywania lub ładowania w pliku IsolatedStorage
.Zapisywanie i ładowanie obrazu do IsolatedStorage Wymaga zapisywania dwukrotnie
Po zapisaniu obrazu przez naciśnięcie przycisku zapisu plik istnieje, ale po załadowaniu obrazu nic się nie wyświetla. Jeśli zapisuję obraz dwukrotnie, obraz ładuje się i wyświetla się poprawnie.
Poniżej znajduje się mój kod.
Zapisywanie pliku:
ExtendedImage myImage = myCanvas.ToImage();
using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
if (isoStore.FileExists("image.png"))
isoStore.DeleteFile("image.png");
using (var fileStream = isoStore.CreateFile("image.png"))
{
myImage.WriteToStream(fileStream, "image.png");
fileStream.Close();
}
}
ładuje plik
BitmapImage bi = new BitmapImage();
using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
if (isoStore.FileExists("image.png"))
{
using (var fileStream = isoStore.OpenFile("image.png", FileMode.Open))
{
bi.SetSource(fileStream);
this.img.Height = bi.PixelHeight;
this.img.Width = bi.PixelWidth;
this.img.Source = bi;
}
}
}
Po prostu wypróbowałem twój kod i wydaje się działać dobrze, zarówno na emulatorze jak na urządzeniu (Nokia Lumia 920) ... –
Nieparzysta. Próbowałem na emulatorze i urządzeniu (L920, Visual Studio 2012 kierowania na Windows Phone 8.0) i błąd jest nadal na obu. Dziękuję za poinformowanie mnie, że to działa. –