高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

Image.FromFile

Image background;
using(Image image = Image.FromFile('image.bmp')
{
  background = (Image)image.Clone();
}

 というコードを作った場合、画像は表示できて、image.bmpはクローズされている状態になると思ったんですが、残念ながらファイルはロックされたままのようです。おかしいですね、確か余所で似たコードを見たときは、ちゃんと解放すればいいと書いてあったと思うんですが…。Cloneもダメなんでしょうか?

Image background;
using(FileStream stream = new FileStream('image.bmp', FileMode.Open))
{
  background = Image.FromStream(stream);
}

とするとうまくいきます。やっぱりファイル周りは面倒でもStreamを通したほうが安全かなぁ…。

 というわけで、Chie.Libに関数を作ることにします。