私は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
ここで、このMemoryStream方式のイメージをDLLリソースから取得するにはどうしたらいいですか?
基本的な問題:単純に "bitmap.UriSource = whatever uri"の方法でアニメーションのように連続して多くのイメージを読み込むと、メモリが増えます。私は上記のmemorystreamの方法で試して、それは完全に正常に働いたが、私はdllに自分のイメージを格納し、私はこのトリックを行う方法を知らない。誰かがメモリのplsを構築せずに管理されたdllから多くのイメージを読む方法を知っているなら、私に知らせてください。
すばらしい答え!私は実際にWinFormsのレポートツールで使用するために、これをビットマップに直接ロードするために使用しました。他の誰もが、BitmapImageにロードし、ビットマップが見ることができるストリームに保存するためにエンコーダを使用することを提案しました。しかし、これはフォーマットに依存しません。 –