注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。
PictureBoxコントロールのImageプロパティにGifアニメーションを設定するのが最も簡単な方法です。
以下の例では、PictureBoxコントロール(PictureBox1)にGifアニメーション(C:\anime.gif)を表示させています。
'Imports System.Drawing
PictureBox1.Image = Image.FromFile("C:\anime.gif")
//using System.Drawing;
PictureBox1.Image = Image.FromFile(@"C:\anime.gif");
それ以外の方法では、ImageAnimatorクラスを使うと楽です。手順としては、まずImageAnimator.Animateメソッドでアニメを開始し、UpdateFramesメソッドで次のフレームに進めます。
次にこの方法でGIFアニメを表示する例を示します。ここではフォーム(Form1)にGIFアニメ(C:\anime.gif)を表示しています。
'Imports System.Drawing Private animatedImage As Bitmap 'フォームのLoadイベントハンドラ Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'GIFアニメ画像の読み込み animatedImage = New Bitmap("C:\anim.gif") 'フォームのPaintイベントハンドラを追加 AddHandler Me.Paint, _ New PaintEventHandler(AddressOf Me.Form1_Paint) 'アニメ開始 ImageAnimator.Animate(animatedImage, _ New EventHandler(AddressOf Me.Image_FrameChanged)) End Sub Private Sub Image_FrameChanged(ByVal o As Object, ByVal e As EventArgs) 'Paintイベントハンドラを呼び出す Me.Invalidate() End Sub 'フォームのPaintイベントハンドラ Private Sub Form1_Paint(ByVal sender As Object, _ ByVal e As PaintEventArgs) 'フレームを進める ImageAnimator.UpdateFrames(animatedImage) '画像の表示 e.Graphics.DrawImage(animatedImage, 0, 0) End Sub
//using System.Drawing; private Bitmap animatedImage; //フォームのLoadイベントハンドラ private void Form1_Load(object sender, System.EventArgs e) { //GIFアニメ画像の読み込み animatedImage = new Bitmap(@"C:\anim.gif"); //フォームのPaintイベントハンドラを追加 this.Paint += new PaintEventHandler(this.Form1_Paint); //アニメ開始 ImageAnimator.Animate(animatedImage, new EventHandler(this.Image_FrameChanged)); } private void Image_FrameChanged(object o, EventArgs e) { //Paintイベントハンドラを呼び出す this.Invalidate(); } //フォームのPaintイベントハンドラ private void Form1_Paint(object sender, PaintEventArgs e) { //フレームを進める ImageAnimator.UpdateFrames(animatedImage); //画像の表示 e.Graphics.DrawImage(animatedImage, 0, 0); }
なお、アニメーションを終了するには、ImageAnimator.StopAnimateメソッドを呼び出します。
補足:GIFのライセンス問題に触れておきましょう。GIFフォーマットで使用されているLZW圧縮伸張アルゴリズムに関して、米国UNISYS社が特許を持っていました。そのため、GIFを表示したり、保存したりできるソフトウェアを作成するには、米国UNISYS社とライセンス契約を結ぶ必要がありました。しかし、日本では、2004年6月20日にこの特許期限が切れました。よって、現在ではGIFを扱うソフトウェアの開発は、自由に行えます。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。