タイムベース (time based) のフレームが含まれる画像を、動画化できます。
すべて静的メソッドです。
メソッド | 機能 |
---|---|
Animate(Image, EventHandler) | アニメーションを開始できる |
StopAnimate(Image, EventHandler) | アニメーションを終了できる |
UpdateFrames() | 実行中のすべてのイメージの、フレームを進められる |
UpdateFrames(Image) | 指定のイメージの、フレームを進められる |
CanAnimate(Image) | 指定のイメージにタイムベース フレームが含まれているか調べられる |
class MyForm : Form { Bitmap image = new Bitmap("sample.gif"); Rectangle rc; protected override async void OnShown(EventArgs e) { base.OnShown(e); this.rc = new Rectangle(new Point(0, 0), this.image.Size); EventHandler onFrameChangedHandler = delegate // フレームが変更された { this.Invalidate(this.rc); }; // アニメーションを開始する ImageAnimator.Animate(this.image, onFrameChangedHandler); await Task.Delay(3000); // アニメーションを終了する ImageAnimator.StopAnimate(this.image, onFrameChangedHandler); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (e.ClipRectangle.IntersectsWith(this.rc)) { // 次のフレームへ進める ImageAnimator.UpdateFrames(this.image); // 新しいフレームを描画する e.Graphics.DrawImage(this.image, this.rc); } } }例 - ImageAnimator.Animate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
複数のフレームからなる画像を、アニメーションとして表示できます。
public static void Animate (
System.Drawing.Image image,
EventHandler onFrameChangedHandler // アニメーションのフレームが変更されたときに呼び出されるメソッド
);
ImageAnimator.Animate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
Animate()でアニメーションを開始すると、StopAnimate()を呼ぶまでくり返しonFrameChangedHandlerが呼ばれます。
imageがすでにアニメーションを開始しているならば、それが終了させられた上で新たに開始されます。Animate - ImageAnimator.cs
アニメーションを終了させられます。
public static void StopAnimate ( System.Drawing.Image image, EventHandler onFrameChangedHandler );ImageAnimator.StopAnimate(Image, EventHandler) メソッド (System.Drawing) | Microsoft Learn
onFrameChangedHandlerには、Animate()で開始するときに渡したハンドラを指定します。
imageがアニメーションを開始していないならば、何も終了しません。StopAnimate - ImageAnimator.cs
指定のイメージのフレームを進められます。このメソッドではイメージ内のフレームの情報を変更するだけで、表示が変更されるのは次に描画されたときです。
public static void UpdateFrames (System.Drawing.Image image);UpdateFrames(Image) - ImageAnimator.UpdateFrames メソッド (System.Drawing) | Microsoft Learn
このメソッドをくり返し呼び出した場合、フレームが進められる前だったならば、次のフレームへは進められません。UpdateFrames - ImageAnimator.cs