2013-03-26 28 views
6

私のアプリがインターネットを使用しているときに呼び出されるイベントがあります。このイベントは、7つのフレームで構成されるアニメーションgifを変更します。フレームを1回だけループさせるにはどうすればよいですか?C#アニメーションGIFを継続的にループさせないようにする方法

あなたはその GIF画像から単一のフレームを抽出することができます
 private void trafficSendingActive(object sender, trafficEventArgs e) 
     { 
      txImage.Image = Properties.Resources.blip; 
     } 
+0

これは 'txImage.Image =(blip);'や 'OnPaint Event'に移動する必要があるかもしれません – MethodMan

+2

txtImageを無効にすると、gifがアニメーション化されなくなります。 – Flot2011

答えて

6

System.Drawing.ImageAnimatorを使用してGIFアニメーションを開始/停止することができます。

// start 
System.Drawing.ImageAnimator.Animate(txImage.Image, OnFrameChanged); 

// stop 
System.Drawing.ImageAnimator.StopAnimate(txImage.Image, OnFrameChanged); 

private void OnFrameChanged(object sender, EventArgs e) 
{ 
    // frame change 
} 
6

(非 - アニメーション)progressイベントが行われたときに、

txImage.Image = Image.FormFile("non-animated-frame-from-gif.jpg"); 

あなたはGIFからフレームを抽出するために、このウェブサイトを使用することができます:http://gif-explode.com/

7

ピクチャボックス内にimage/gifをいつもカプセル化することができます.GIFを停止させたい場合は、PictureboxのEnabledプロパティをfalseに設定するだけです。

単なる考えです。

2

GIFを実行したい場合は、GIF & pictureBox.Enabled = true;を停止する場合は、pictureBox.Enabled = false;を使用してください。

関連する問題