ビットマップのMemoryStreamへの保存

メモリを割り当てるべきか、それともメモリストリームのオブジェクトだけを割り当てるべきでしょうか。 これはOKですか?

MemoryStream memoryStream = new MemoryStream();
bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg);

MemoryStreamのサイズを定義する必要がある場合、Bitmapからそれを取得する方法は?

ソリューション

.NETはマネージド環境です。具体的には、メモリの割り当ては通常.NETランタイムが代わりに管理します。通常、自分でメモリーを割り当てる必要はありません。

しかし、時には Close()Dispose() を使って、メモリを使い終わったことをランタイムに通知しなければならないこともあります。usingステートメントを使用して、MemoryStream` のようなリソースをラップして、ランタイムにメモリを再利用できることを伝えることができます。

解説 (1)

メモリを事前に確保する必要はありません。

サイズは後から memoryStream.Length で取得することができます。


メモリストリーム(memoryStream)に対して必要なことを行った後は、必ずそれを破棄してください(または、すべてを using 文で囲んでください)。

解説 (1)