我使用WPF和我的程序在DLL资源文件中有图像。我有这口井的工作方式,从磁盘读取图片:从资源DLL获取图像作为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
现在,我怎样才能从一个DLL资源此MemoryStream的路图像?
基本问题:如果我简单地使用“bitmap.UriSource =无论uri”的方式,并像动画一样按顺序加载许多图像,它会建立内存。我试着用上面的内存流方式,它工作得很好,但后来我把我的图像存储在一个DLL中,我不知道如何做这个技巧。如果有人知道如何从一个托管的dll读取许多图像,而不会增加内存空间,请告诉我。
很好的回答!我实际上使用它直接加载到WinForms报告工具中使用的位图。其他人都建议加载到BitmapImage并使用编码器保存到Bitmap可以查看的流中。但是,这是格式不可知的。 –