§18 グラフィックス(2)2 プログラミング実習
 back next 

【3】 画像の保存

 ピクチャボックスに描画した画像をBMPファイルとして保存する。

操作 5 ボタンを1つ追加し、プロパティを次のように設定する。ダブルクリックで配置する。

(Name) Button7 Location 215, 186 Text 保存

操作 6 [保存](Button7)ボタンのクリックイベントに対応するメソッドを次のように作成する。

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        PictureBox1.Image.Save("test.bmp", Imaging.ImageFormat.Bmp)
        MessageBox.Show("保存しました。")
    End Sub

 画像データはImageプロパティにあるので、それに対するSaveメソッドで保存する。
 ファイル"test.bmp"の保存場所は実行ファイルと同じフォルダである。このプログラムはデバッグ中であるから、その実行ファイルは「実習17グラフィックス1\bin\Debug」フォルダ内に保存されている。
結果 実行して、図形を描画し、[保存]ボタンをクリックする。保存されたファイル"test.bmp"をペイントで読み込むと背景が黒色である。
Image.Save(ファイル名, データ形式 )
 画像データをファイル名 で保存する。保存するデータ形式はデータ形式 で設定する。データ形式 を省略するとPng形式で保存される。
データ形式(Imaging.ImageFormatのプロパティ)抜粋
Bmp ビットマップ (BMP) イメージ形式
Gif GIF (Graphics Interchange Format) イメージ形式
Icon Windows アイコン イメージ形式
Jpeg JPEG (Joint Photographic Experts Group) イメージ形式
Png W3C PNG (Portable Network Graphics) イメージ形式
Tiff TIFF (Tagged Image File Format) イメージ形式
問題点 保存したファイル"test.bmp"の背景が黒色になる。
 作成したビットマップオブジェクトは黒色で初期化されるのかもしれない。[クリア]ボタンをクリックしてから図形を描画し、[保存]ボタンをクリックして保存すると背景は白色になる。


○ ビットマップオブジェクトの初期化

 ビットマップオブジェクトを白色で初期化する。

操作 7 フォームのLoadイベントに対応するFome1_Loadメソッドを次のように作成する。

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim gr As Graphics = AutoRedraw(PictureBox1)    'ピクチャボックス用
        Me.Show()        'フォームの表示
        gr.Clear(PictureBox1.BackColor)
        PictureBox1.Refresh()
        gr.Dispose()        'オブジェクト解放
    End Sub

プログラムは、フォームの表示(Me.Show())を除いて消去のプログラム(Button6_Click)と同じである。
結果 実行して、図形を描画し、[保存]ボタンをクリックする。保存されたファイル"test.bmp"をペイントで読み込むと背景が白色である。

 

【4】 画像の読み込み

 画像ファイルを読み込み表示する。

操作 8 ボタンを1つ追加し、プロパティを次のように設定する。ダブルクリックで配置する。

(Name) Button8 Location 215, 215 Text 読み込み

操作 9 [読み込み](Button8)ボタンのクリックイベントに対応するメソッドを次のように作成する。

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Dim gr As Graphics = AutoRedraw(PictureBox1)    'ピクチャボックス用
        Dim gazo As Image = Image.FromFile("test.bmp")
        gr.DrawImage(gazo, 0, 0)
        PictureBox1.Refresh()
        gr.Dispose()    'オブジェクト解放
        gazo.Dispose()
    End Sub

 読み込んだ画像データはDrawImageメソッドで描画する。
 読み込んだ画像データをピクチャボックスに表示するだけであれば次のように1行で書くこともできる。
  PictureBox1.Image = Image.FromFile("test.bmp")
結果 実行して、[読み込み]ボタンをクリックすると、保存されたファイル"test.bmp"が表示される。


Image.FromFile(ファイル名 )
 ファイル名 の画像データを読み込む。

 

・保存時のデータ形式はいろいろと選択できるが、ファイル名は"test.bmp"固定である。また、読み込めるファイル名も"test.bmp"固定である。
  →ファイルのダイアログなどでファイル名を選択・入力できるようにする。
・画像のサイズが200×200ピクセルで固定である。
  →サイズを変更できるようにする。
・どの図形も大きさや場所を変えて描画することができない。
  →ペイントと同じように…



 back next 
 §18 グラフィックス(2)2 Copyright©2009 Hiroshi Masuda 

 

 

inserted by FC2 system