WEB开发网
开发学院软件开发VC VC.NET简单实现GIF动画 阅读

VC.NET简单实现GIF动画

 2006-07-23 11:34:36 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 自从gif动画格式推出这十几年来,可是忙坏了C/C++的程序员,VC.NET简单实现GIF动画,远的不说,就说这几年吧,已经可以正确显示GIF格式的动画了,呵呵简单吧,各种方法可谓五花八门,有的直读文件

本文示例源代码或素材下载

自从gif动画格式推出这十几年来,可是忙坏了C/C++的程序员。远的不说,就说这几年吧,各种方法可谓五花八门,有的直读文件,一行一行不厌其烦的分析;有的使用IPicture,大把大把的玩接口;有的封装成COM,谁也不知道他怎么实现的......现在有了GDI+,大家更忙活了,前几天看见 獾猪哥哥在《GDI+中GIF图片的显示》中用到的方法,深感麻烦,所以写了这篇文章。

其实只要使用.net框架封装好的几个函数,就能轻松搞定了,这里要用到的工具是VS.net2003。

第一步:新建一个.Net窗体工程

第二步:添加成员变量和消息(就是行为和外观啦),只要双击空白处系统就会自动填写默认函数,添加图中的三个函数就够了。

第三步:添加成员变量image及在Form1_Load中初始化

private:
  Image *image;
private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e)
{
  //按路径读入文件
  image=Image::FromFile(L"测试图片.GIF");
}
private: System::Void Form1_Closed(System::Object * sender, System::EventArgs * e)
{
  if(image) image->Dispose();
}

第四步:好了,动画文件已经读入,现在的任务是把它显示出来

private: System::Void Form1_Paint(System::Object * sender, System::Windows::Forms::PaintEventArgs * e)
{
  //在Form1_Paint中启用动画,这个函数的功能是读取图片中每个对象的时间信息,然后每到一次时间就调用一次OnPaintGIF
  ImageAnimator::Animate(image, new EventHandler(this,OnPaintGIF));
  //显示图片
  e->Graphics->DrawImage(0,0,image->Width,image->Height);
  //将图片按照时间间隔向后翻一页
  ImageAnimator::UpdateFrames(image);
}
private: System::Void OnPaintGIF(Object* sender, EventArgs* e)
{
  //时间到啦,该显示下一张图啦,置显示区域无效
  this->Invalidate();
}

到此,已经可以正确显示GIF格式的动画了,呵呵简单吧,才几行就解决了。

1 2 3  下一页

Tags:VC NET 简单

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接