目次

ボタン処理

 ボタンは、3種あります。

 各々のボタンで実現する処理を説明します。


Load

 Loadボタンのクリックで実現したい内容は、以下です。  実現すべき内容が確定すれば、より小さいレベル処理に  分けていきます。  テキストファイルからデータを入力するためには  オープンファイルダイアログボックスを使い、  ディレクトリとファイル名を含んだパス名を指定。  パス名を指定できた時点で、StreamReaderでテキストファイル  全輝度情報を文字列として入力します。  1ラインごとの輝度情報から、ピクセルの色情報を決定します。  赤、青、緑の3成分値をすべて同じにすると、モノクロの画像  (256階調)を生成できます。  まとめると、次のコードになります。 private void btnLoad_Click(object sender, EventArgs e) { string sline; string stmp; int tmp; int x, y; if (openFileDlg.ShowDialog() == DialogResult.OK) { // get file name gFName = openFileDlg.FileName; // get context of text file string stext ; StreamReader sr = new StreamReader(gFName, Encoding.Default); stext = sr.ReadToEnd(); sr.Close(); // show file name lblFileName.Text = gFName; // generate area Bitmap bmp = new Bitmap(xlast, ylast); // store data to area for ( y = 0 ; y < ylast ; y++ ) { // get 1 line sline = stext.Substring(y*ysize,ysize); //MessageBox.Show(sline, "line"); for ( x = 0 ; x < xlast ; x++ ) { // get value stmp = sline.Substring(3*x,2); // convert tmp = hex2digit(stmp[0]) * 16 + hex2digit(stmp[1]); // store pixel data bmp.SetPixel(x,y,Color.FromArgb(255,tmp,tmp,tmp)); } } // show picBox.Image = bmp ; } }  ファイル処理、グラフィック処理は、別の章で説明します。

Save

 表示されている画像を、フォーマットを指定して  ファイルに保存する処理を担当します。  ディレクトリとファイル名を含むパス名を、セーブ  ファイルダイアログボックスから取得します。  フォーマット指定で、画像データをファイルに  保存する場合は、次の指定が必要です。   using System.Drawing.Imaging;  画像フォーマットは、次の4種類にします。  異なる画像フォーマットにするのは、ディスク容量を節約  するためです。BMP形式ファイルを扱えないOSとのやりとり  も可能としたいので、画像フォーマットを指定できるように  しました。  どの画像フォーマットを指定したのかを、フィルタインデックス  を利用して認識します。  まとめると、次のコードになります。 private void btnSave_Click(object sender, EventArgs e) { if (saveFileDlg.ShowDialog() == DialogResult.OK) { // string fname = saveFileDlg.FileName ; // save int idx = saveFileDlg.FilterIndex; switch ( idx ) { case 1 : picBox.Image.Save(fname, ImageFormat.Bmp); break; case 2 : picBox.Image.Save(fname, ImageFormat.Gif); break; case 3 : picBox.Image.Save(fname, ImageFormat.Jpeg); break; case 4 : picBox.Image.Save(fname, ImageFormat.Tiff); break; } } }  ファイル処理は、別の章で説明します。

Exit

 アプリケーションを終了します。  アプリケーションを終了するので、そのまま  オブジェクトApplicationのもつメソッドExit  を使います。 private void btnExit_Click(object sender, EventArgs e) { Application.Exit(); }
目次

inserted by FC2 system