最終更新:
edward_black 2013年10月27日(日) 16:18:43履歴
![](https://image01.seesaawiki.jp/i/g/image_processing/4701443e6518eca9.png)
![](https://static.seesaawiki.jp/formatter-storage/images/function/fukidashi/icon_guest.gif)
画像を表示させる基本フォームはQVGAサイズの2画面として、表示のためにOpenCvSharpのpictureBoxIplを用います。pictureBoxIplは.NETのpictureBoxを派生したユーザー定義のツールで、BitmapとIplImageの相互変換が容易に行えます。Panelの上にpictureBoxIplを置くことで、AutoScrollなどの便利機能が使用できます。
![](https://image01.seesaawiki.jp/i/g/image_processing/8e62bb0be51fd1cd.jpg)
MenuStripには画像のロード、セーブ、各種エフェクト等、あらゆるプロジェクトで使用する可能性が高いものを予め登録しておきます。僕はPictureBoxがダブルクリックされたら画像の保存、シングルクリックなら座標値の取得等を行うメソッド等をいつも使用するので、これも追加しています。
![](https://image01.seesaawiki.jp/i/g/image_processing/a31dec936afc3bca.png)
![](https://image01.seesaawiki.jp/i/g/image_processing/29f45c752f59e6f5.png)
![](https://static.seesaawiki.jp/formatter-storage/images/function/fukidashi/icon_guest.gif)
MenuStripにメニューを追加していき、メニュークリック時のイベントを追加していきます。
private void pictureBoxIpl_DoubleClick(object sender, EventArgs e) { String filename; if (net.SaveFilePass(out filename, "IMG(*.png;*.jpeg;*jpg;*pgm;*ppm;*PNG;*JPG;*JPEG)|*.png;*.jpeg;*.jpg;*.pgm;*.ppm;*.PNG;*.JPG;*.JPEG") == false) return; pictureBoxIpl.Image.Save(filename); } //頻繁に使用するメソッドはクラスにまとめます. "net"はインスタンスです. /// <summary> /// OpenFileDialog[拡張子フィルタリング] /// </summary> /// <param name="Ftr">FilterName(ext1,ext2,...)|ext1;ext2;... /// 例:"Excelファイル(*.xls;*.xlsx)|*.xls;*.xlsx"; </param> /// <returns></returns> public bool GetFilePass(out String Pass, String Ftr) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = @"C:\"; ofd.Multiselect = true; ofd.Filter = Ftr; if (ofd.ShowDialog() == DialogResult.OK) { Pass = ofd.FileName; return true; } else { Pass = null; return false; } }
コメントをかく