GIFアニメーションを表示する
補足:画像の表示方法が分からないという方は、まず「画像ファイルを表示する」をご覧ください。
PictureBox.Imageプロパティを使用する方法ピクチャボックスの場合、ピクチャボックス(PictureBox1)にGifアニメーション("C:\anime.gif")を表示させる一番簡単な方法は、次のようにPictureBox1のImageプロパティにImageを指定することです。
PictureBox1.Image = Image.FromFile("C:\anime.gif")
PictureBox1.Image = Image.FromFile(@"C:\anime.gif"); ImageAnimatorクラスを使用する方法それ以外の方法としては、ImageAnimatorクラスを使うのが一般的です。手順としては、まずImageAnimator.Animateメソッドによりアニメを開始し、UpdateFramesメソッドにより次のフレームへ進めます。 次にGIFアニメを表示する例を示します。ここではフォームForm1にGIFアニメ"C:\anime.gif"を表示しています。 Private animatedImage As System.Drawing.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) 'アニメ開始 System.Drawing.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) 'フレームを進める System.Drawing.ImageAnimator.UpdateFrames(animatedImage) '画像の表示 e.Graphics.DrawImage(animatedImage, 0, 0) End Sub private System.Drawing.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); //アニメ開始 System.Drawing.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) { //フレームを進める System.Drawing.ImageAnimator.UpdateFrames(animatedImage); //画像の表示 e.Graphics.DrawImage(animatedImage, 0, 0); } なお、アニメーションを終了するには、ImageAnimator.StopAnimateメソッドを呼び出します。
補足:GIFのライセンス問題に触れておきましょう。GIFフォーマットで使用されているLZW圧縮伸張アルゴリズムに関して、米国UNISYS社が特許を持っていました。そのため、GIFを表示したり、保存したりできるソフトウェアを作成するには、米国UNISYS社とライセンス契約を結ぶ必要がありました。しかし、日本では、2004年6月20日にこの特許期限が切れました。よって、現在ではGIFを扱うソフトウェアの開発は、自由に行えます。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。 |
|
Copyright(C) DOBON!. All rights reserved.
|