GDI+生成动画式的Gif图片示例代码


update : DEOM download from here


想用GDI+生成动画式的Gif图片示例代码:
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)
ExpandedBlockStart.gif ContractedBlock.gif {
    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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值