L'affichage d'une image stockée dans le fichier de Stockage dans un metroapp
Je voudrais afficher le contenu d'une image stockée dans un StorageFile par une liaison, mais tout ce que je suis en train de faire, il ne semble pas fonctionner.
Voici les deux solutions que j'ai déjà testé :
string img =( await CompetencesFolder.GetFileAsync(FormatImageNameToFileName(imageName))).Path;
Puis de retourner le chemin obtenu (un chemin absolu vers le fichier) à la source de la Propriété par le biais de la liaison, et d' :
BitmapImage img = await LoadImage(await CompetencesFolder.GetFileAsync(FormatImageNameToFileName(imageName)));
private static async Task<BitmapImage> LoadImage(StorageFile file)
{
BitmapImage bitmapImage = new BitmapImage();
FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.Read);
bitmapImage.SetSource(stream);
return bitmapImage;
}
Retour de la finale bitmapImage plus tard à mon lié à la propriété.
Aucune de ces méthodes ne fonctionne ..
Faire quelqu'un a une idée?
EDIT : CORRIGÉ
Voici le code qui a résolu le problème :
BitmapImage img = new BitmapImage() { UriSource = new Uri( LOCAL_REPOSITORY.Path + "/Assets/gfx/cards/" + FormatImageNameToFileName(imageName) + ".jpg", UriKind.RelativeOrAbsolute) };
J'ai fait un mix des 2 échantillons ci-dessus : j'ai créé mon bitmapImage à partir de l'URI absolu de l'image (LOCAL_REPOSITORY contient une référence vers le local de stockage : ApplicationData.Current.LocalFolder
)
Je n'arrive toujours pas à comprendre pourquoi les 2 autres moyens ont échoué : j'ai l'habitude de lier mon image directement à un Uri, une chaîne ou un BitmapImage, et cela fonctionne ..
Je n'ai pas tout : l'image n'est pas affichée sans aucun plantage ni erreur. J'ai résolu le problème (voir la modifier), mais encore je ne peux pas comprendre pourquoi les 2 autres échantillons n'a pas fonctionné.
Ont été les images situées dans le dossier local pour les autres échantillons? Magasin d'applications n'ont pas accès arbitraire sur le système de fichiers.
Les fichiers sont situés au même endroit tout au long de tous mes tests. J'ai été en mesure d'obtenir leur aide StorageFolder / StorageFile, mais impossible de les afficher pas de mater ce que j'ai essayé. Ces fichiers sont téléchargés à partir d'un serveur de mine, et sont stockés dans la LocalFolder.
OriginalL'auteur Thomas KiTe Trentin | 2013-02-14
Vous devez vous connecter pour publier un commentaire.
Le code ci-dessous montre comment vous pouvez utiliser la loadimage méthode dans une application: créer une application vide, ajouter une Image et un Bouton à la page principale.
Salut l'homme, une question... Est possible de convertir en base64 chaîne de StorageFile? Je veux joindre un fichier généré en base64... voir svp le code actuel screencast.com/t/N0Sr2G3nJ
OriginalL'auteur Zhiming Xue