J'utilise WPF et mon programme contient des images dans un fichier de ressources DLL. J'ai cette façon de travailler bien à lire des images à partir du disque:Obtenir l'image de la ressource dll en tant que MemoryStream
Private Function GetImageFromFile(ByVal fileName As String) As BitmapImage
Dim buffer As Byte() = IO.File.ReadAllBytes(fileName)
Dim memoryStream As New IO.MemoryStream(buffer)
Dim bitmap As New BitmapImage()
bitmap.BeginInit()
bitmap.StreamSource = memoryStream
bitmap.EndInit()
bitmap.Freeze()
Return bitmap
End Function
Maintenant, comment puis-je obtenir des images dans ce sens MemoryStream d'une ressource de DLL?
Le problème de base: Si j'utilise simplement la méthode "bitmap.UriSource = quel que soit l'uri" et que je charge de nombreuses images en séquence comme une animation, cela crée de la mémoire. J'ai essayé avec le chemin de mémoire ci-dessus et cela a fonctionné parfaitement bien, mais alors je stocke mes images dans une DLL et je ne sais pas comment faire cette astuce. Si quelqu'un sait comment lire de nombreuses images à partir d'une DLL gérée sans construire les pls de la mémoire, faites le moi savoir.
Bonne réponse! J'ai effectivement utilisé ceci pour charger directement dans un bitmap pour une utilisation dans un outil de reporting WinForms. Tout le monde a suggéré de charger dans une image BitmapImage et d'utiliser un encodeur pour sauvegarder dans un flux qu'un bitmap pourrait voir. Ceci, cependant, est agnostique de format. –