Je vous propose un petit tour d’horizon sur le stockage d’images dans l’Isolated Storage.
Pour rappel, l’Isolated storage est l’emplacement réservé à votre application Windows Phone pour le stockage de fichiers.
Quelles sont les implémentations qui permettent de récupérer une image déjà stockée dans cet espace ? Quelles sont les méthodes les plus efficaces ?
L’implémentation classique (Windows Phone 7)
C’est l’implémentation standard « old school » : j’utilise GetUserStoreForApplication() et OpenFile pour lire un Stream. Le Stream est ensuite lu par le BitmapImage et renvoyé dans une Action.
public static void LoadImageFromStorage(string name, Action<BitmapImage> actionBitmap)
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsolatedStorage != null && myIsolatedStorage.FileExists(name))
{
IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(name, FileMode.Open, FileAccess.Read);
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
BitmapImage bitmapSource = new BitmapImage();
bitmapSource.SetSource(fileStream);
if (actionBitmap != null)
actionBitmap(bitmapSource);
});
}
}
}
}
Remarque 1
BitmapImage nécessite de s’exécuter dans le ThreadUI principal, pour cela, on utilise
Deployment.Current.Dispatcher.BeginInvoke(() =>
Poursuivre la lecture →