以前作ったテストパターン表示ソフトの最適化、リファクタリングを始めた。
最初に作ったときには、時間優先で幾何学的な表示パターンを全てその場で計算して描いていたのだが、これだと描画に時間が掛かる。
周期的なパターンについては、事前にリソースとして作成して、実行ファイルに取り込んでおいた方が描画が早い。
画像をプロジェクトに取り込む
"Solution Explorer"で現在のプロジェクトを右クリックし、"Add" -> "Existing Item"と選択する。
ファイル選択ダイアログが開くので、フィルターを"Image Files"にして、作成した画像を選択する。
"Solution Explorer"で取り込んだファイルを右クリックして"Properties"を選択する。
"Properties" -> "Build Action"を"Embedded Resource"にする。
これで取り込んだファイルがリソースとして、appのバイナリーに組み込まれる。
取り込んだ画像を使用する
"ImageName"は取り込んだ画像の名前(拡張子付)そのままである(例えば"TestImage.png")。
Assembly assemblyForm1 = Assembly.GetExecutingAssembly();
Stream strImageLoadBuffer;
string ResourceImageName;
ResourceImageName = ResourceImagePath + ImageName;
strImageLoadBuffer = assemblyForm1.GetManifestResourceStream(ResourceImageName);
Bitmap bmpImageFromResource = new Bitmap(strImageLoadBuffer);
ResourceImagePathは"(プロジェクトのname space).("Solution Explorer"でのパス)."である。
画像を何もせずに取り込めば、"Solution Explorer"のルートに入るはずなので、"Solution Explorer"でのパスは不要である。
もし"Solution Explorer"でフォルダーを作成して(例えば"Resources")その中に格納した場合には、"(プロジェクトのname space).Resources"とする必要がある。
なのでフルパスは"TestAhoCS.Resources.TestImage.png"のようになる。