ICTメディア編集U 20251219

 

サイコロのプログラムへの画像表示の追加

 

さきほど,サイコロを模擬するシミュレーションのプログラ ムとして,ボタンを押すことによって,ルーレットのように画面にサイコロの目の値をランダムに表示させ,また,ボタンを押すとサイコロが止まって値が表示 されるような,動きのあるプログラムを作成しました.

ボタンが押されるまで繰り返しサイコロの目を表示するに は,プログラムの中で繰り返しの処理が必要となり、タイマー関数を使用しました。ここではさらに、サイコロの目として,画像を表示させることを追加させてみましょう.

 

ピクチャーボックスを用いた画像の表示と消去

画像を表示 するには,ツールボックスにあるPictureBoxをフォーム上の適当な位置に配置し,それに対して表示したい画像ファイルを代入することになります.

 

 

PictureBoxのプロパティ設定で重要な ものは,Sizeです.

PictureBoxSizeと表示したい画像のピクセル数を合わせておく必要があります.PictureBox Sizeが表示したい画像よりも小さいと全体を表示できません.

 

ただし,PictureBoxSizeModeをStretchImageとす ると.PictureBoxSizeに画像が変形されることになります.

PictureBoxに画像を表示させたい場合 には,以下のように画像のファイル名を指定して,代入します.

PictureBox1.Image = Image.FromFile("C:\g1.jpg")

また,PictureBoxの画像を消去したいときは, 以下のようにIf文を用いて,Nothingを代入します.

 

If Not (PictureBox1.Image Is Nothing) Then

    PictureBox1.Image.Dispose()

    PictureBox1.Image = Nothing

End If

 

演 習

 先ほどのサイコロを模擬した電子サイコロのプログラムに以下のような画像を表示するようにします.背景が白地ですので,わかりにくいですが,6つのさいころの目の画像です.

各自のPCVisual Studio 2022のフォルダにダウンロードして保存してください.(教室のPCの場合。ファイル名は、s1.gifs6.gifです。)

ダウンロードをVisual Studio 2022のフォルダの下のProjectsにした場合には、

X:\Documents\Visual Studio 2022\Projects\s1.gif

が呼び出す先になります。

※皆さんが各自のPCにダウンロードしてお使いの場合には、コンピュータ上のフォルダは「C:\Users\****\source\repos」などとして作成されるかと思います(****はユーザ名など)。

ダウンロードしたソフトや場所により、フォルダの位置や名前が異なりますので、ご注意ください。各自のインストール先によって、保存先を変える必要がありますので、ご注意下さい。

 

 “dice2”という名前で先ほどのプログラムが入っていますが,このフォ ルダを丸ごとコピーして,フォルダ名を“dice3”と変え ておきましょう. このフォルダの“dice2.vbproj”を開きます.

 

1)まずは,ツールの PictureBoxを 適当な位置に配置します.

2)今回のサイコロの目の画像は,100x100のサイズですので,PictureBoxのプロパティでサイズを100 100にしておきましょう.

  

3)あとは,タイマー関数で,さいころの目がランダムでLabel1.Textに表示されているところに,If文を用い て,それぞれの数値にあう画像を表示させるようにします.終了ボタンには,一応,画像を消去する命令を書き入れます.画像の消去ボタンを作成してもかまい ません.

 

 

        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

          Label1.Text = Int(Rnd() * 6 + 1)

          If (Label1.Text = 1) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s1.gif")

          ElseIf (Label1.Text = 2) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s2.gif")

          ElseIf (Label1.Text = 3) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s3.gif")

          ElseIf (Label1.Text = 4) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s4.gif")

          ElseIf (Label1.Text = 5) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s5.gif")

          ElseIf (Label1.Text = 6) Then

            PictureBox1.Image = Image.FromFile("X:\Documents\Visual Studio 2022\Projects\s6.gif")

          End If

        End Sub

 

ファイル名のフォルダ指定の部分は,各自の画像ファイル(s1.gifなど)の所在する場所に修正してください.

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

          If Not (PictureBox1.Image Is Nothing) Then

            PictureBox1.Image.Dispose()

            PictureBox1.Image = Nothing

          End If

 

          End

        End Sub

 

 

4)完成しましたら,動作を確認してみましょう.

 

5)すべてを保存で,保存しておきましょう.

 

 


 

今回のプログラムは,前回と同様にフォルダにファイルがいくつか入っていますので,保存したい場合には,フォルダごと,コピーしてください.

これで,プログラムで画像ファイルを表示することができるようになりました.他にも画像の表示のプログラムつくってみることに挑戦してください.

 

上記の参考資料:サイコロのプログラムへのグラフィック表示の追加(参考

 


加藤のページへ | ICTメディア編集U | グラフィックスを用いたプログラムの作成