
Bitmap bmp = new Bitmap(100, 100
);

Graphics g =
Graphics.FromImage(bmp);

Font f = new Font("arial"
, 11f);

Brush b = Brushes.Blue;


string txt = "Rotate text animation!"
;

SizeF sz =
g.MeasureString(txt, f);
g.Clear(Color.WhiteSmoke);

g.DrawString(txt, f, b, 50-sz.Width/2, 50-sz.Height/2
);

g.Flush();

//(The following code create a starting frame from bmp)

GifImage.GifAnimation gif = new
GifImage.GifAnimation(bmp,

GifImage.GraphicControlExt.Default);

//(Set this property otherwise the animation will not play circularly)

gif.Application = GifImage.ApplicationExt.Default;

//(Use global color table only, set this option will greatly decrease the size of output file)

gif.UseGlobalColorTableOnly = true;


for (int i = 1; i < 36; ++i)

{
g.Clear(Color.WhiteSmoke);
g.TranslateTransform(50,50);
g.RotateTransform(10f * i);
g.DrawString(txt, f, b, sz.Width/-2, sz.Height/-2);
g.ResetTransform();
g.DrawString("Hello", f, Brushes.Red, -50 + i * 4, 20);
g.DrawString("Yeah", f, Brushes.Orange, 60, -20+i*4);

g.Flush();
//(Create a frame from bitmap)
gif.AddFrame(bmp);
}

f.Dispose();
g.Dispose();
bmp.Dispose();


FileStream fs = new FileStream(@"E:\vmlinux\GifImage.gif", FileMode.Create);

//(Write animation to GifImage.gif)
gif.Save(fs);

fs.Close;