Animates an image : Animation « 2D Graphics « C# / C Sharp






Animates an image

Animates an image

using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;

public class AnimateImage : Form {
  private int width = 10;
  private int height = 10;

  Image pic = Image.FromFile("winter.jpg");
  private Button abort = new Button();
  Thread t;

  public AnimateImage() {
    abort.Text = "Abort";
    abort.Location = new Point(50, 230);
    abort.Click += new EventHandler(Abort_Click);
    Controls.Add(abort);

    SetStyle(ControlStyles.DoubleBuffer
           | ControlStyles.AllPaintingInWmPaint
           | ControlStyles.UserPaint, true);
           
    t = new Thread(new ThreadStart(Run));
    t.Start();
  }
  protected void Abort_Click(object sender, EventArgs e) {
    t.Abort();
  }
  
  protected override void OnPaint( PaintEventArgs e )   {
     Graphics g = e.Graphics;
     g.DrawRectangle(Pens.Black, 8, 8, width+3, height+3);
     g.DrawImage(pic, 10, 10, width, height);
     base.OnPaint(e);
  }
  
  public void Run() {
      int dx=5, dy=5;
      while (true) {
        for(int i = 0; i < 500; i++) {
          width += dx;
          height += dy;
          Invalidate();
          Thread.Sleep(30);
        }
        dx = -dx; dy = -dy; 
      }
  }
  public static void Main( ) {
      Application.Run(new AnimateImage());
  }         
}
           
       








Related examples in the same category

1.Object collisionObject collision
2.Button click action to move a ballButton click action to move a ball
3.Animates a circleAnimates a circle
4.Uses a thread to Animate a ballUses a thread to Animate a ball
5.Animation and double bufferAnimation and double buffer
6.Timer based animationTimer based animation
7.No Flicker (Flicker Free) AnimationNo Flicker (Flicker Free) Animation
8.Animate ImageAnimate Image
9.Animate DemoAnimate Demo
10.Animate Image with ImageAnimator