vs2010中正确加载gif格式图片
2013-05-16 14:46
155 查看
实现方法如下:
一.显示GIF图片控件类的介绍:
(CPictureEx类下载地址:http://download.csdn.net/detail/wangtiti/4372882)
无论是在VC6.0还是在VS2010中,都没有自带控件能显示GIF动画图片。能显示一些静态图片的只是Picture控件。本例程用到的GIF动画显示控件类是 PictureEX。其定义文件是 PictureEx.h,类的实现文件是 PictureEx.cpp。有关该类的成员函数和方法说明如下:
程序代码:
BOOL Load(...) ——加载GIF 并准备绘画对象;
BOOL Draw() ——绘制图像或继续动画显示。
void Stop() ——停止动画;
void UnLoad() —— 停止动画并释放所有资源;
void SetBkColor(COLORREF) ——为透明区域设置填充颜色;
COLORREF GetBkColor() ——获取当前填充颜色;
BOOL IsGIF() —— 如果当前图像是 GIF 则返回 TRUE;
BOOL IsAnimatedGIF() ——如果当前图像是动画 GIF,则返回TRUE;
BOOL IsPlaying() ——如果当前图像是以动画方式显示则返回TRUE;
SIZE GetSize() ——返回图像尺寸。
int GetFrameCount() ——返回当前图像的帧数量;
BOOL GetPaintRect(RECT *lpRect) ——返回当前绘制的矩形。
BOOL SetPaintRect(const RECT *lpRect) ——设置当前绘制的矩形;
二.编程应用步骤:
1.建立一个对话框的MFC工程。将GIF动画图片资源文件拷贝至工程目录的Res文件夹下,然后用添加资源的方法将这两个资源文件导入到你的工程中。
步骤:导入资源——找到要加载的GIF格式的文件——导入——资源类型写GIF,确定
( VS2010 中如果直接添加 GIF后缀的资源,会将GIF文件内部强制转化为静态BMP文件,从而使GIF图片失去动态效果,故在加载前应改个后缀如:.gifa。 )
2.拷贝PictureEx.h和PictureEx.cpp到你的工程目录下,然后在将该类添加到你的工程中。
3.一切准备工作以经完成。下面是添加代码:
在对话框类定义文件(XXXXDlg.h)中
添加:
定义:
在对话框的实现文件(XXXXXDlg.cpp)中
对话框初始化函数 BOOL CXXXXDlg::OnInitDialog()中添加如下代码:
即可实现GIF动画格式图片的播放。
注: 1、从资源中加载GIF图片时,加载前要把GIF图片的后缀名给换一下
2、图片如果不能正常显示,把GIF图片资源重新导入下再试
上面是从资源中加载GIF图片,如果从指定路径中加载直接用注释的那部分代码
m_pGif可能需要自己销毁
一.显示GIF图片控件类的介绍:
(CPictureEx类下载地址:http://download.csdn.net/detail/wangtiti/4372882)
无论是在VC6.0还是在VS2010中,都没有自带控件能显示GIF动画图片。能显示一些静态图片的只是Picture控件。本例程用到的GIF动画显示控件类是 PictureEX。其定义文件是 PictureEx.h,类的实现文件是 PictureEx.cpp。有关该类的成员函数和方法说明如下:
程序代码:
BOOL Load(...) ——加载GIF 并准备绘画对象;
BOOL Draw() ——绘制图像或继续动画显示。
void Stop() ——停止动画;
void UnLoad() —— 停止动画并释放所有资源;
void SetBkColor(COLORREF) ——为透明区域设置填充颜色;
COLORREF GetBkColor() ——获取当前填充颜色;
BOOL IsGIF() —— 如果当前图像是 GIF 则返回 TRUE;
BOOL IsAnimatedGIF() ——如果当前图像是动画 GIF,则返回TRUE;
BOOL IsPlaying() ——如果当前图像是以动画方式显示则返回TRUE;
SIZE GetSize() ——返回图像尺寸。
int GetFrameCount() ——返回当前图像的帧数量;
BOOL GetPaintRect(RECT *lpRect) ——返回当前绘制的矩形。
BOOL SetPaintRect(const RECT *lpRect) ——设置当前绘制的矩形;
二.编程应用步骤:
1.建立一个对话框的MFC工程。将GIF动画图片资源文件拷贝至工程目录的Res文件夹下,然后用添加资源的方法将这两个资源文件导入到你的工程中。
步骤:导入资源——找到要加载的GIF格式的文件——导入——资源类型写GIF,确定
( VS2010 中如果直接添加 GIF后缀的资源,会将GIF文件内部强制转化为静态BMP文件,从而使GIF图片失去动态效果,故在加载前应改个后缀如:.gifa。 )
2.拷贝PictureEx.h和PictureEx.cpp到你的工程目录下,然后在将该类添加到你的工程中。
3.一切准备工作以经完成。下面是添加代码:
在对话框类定义文件(XXXXDlg.h)中
添加:
#include "PictureEx.h"
定义:
CPictureEx* m_pGif;
在对话框的实现文件(XXXXXDlg.cpp)中
对话框初始化函数 BOOL CXXXXDlg::OnInitDialog()中添加如下代码:
BOOL CXXXXDlg::OnInitDialog() { ........ m_pGif = new CPictureEx(); if (m_pGif == NULL) return; RECT rt = {71,55,189,61}; //图片显示的矩形区域 m_pGif->Create(_T(""),WS_CHILD | WS_VISIBLE | SS_NOTIFY,rt, this); m_pGif->ShowWindow(SW_SHOW); // CString str; // str = GetAppPath()+_T("resource\\LoadingProgress.gif"); // if(m_pGif->Load(str)) if (m_pGif->Load(MAKEINTRESOURCE(IDR_GIF_PROGRESS_LOADING),_T("GIF"))) { m_pGif->SetAdID(_T("下载进度条")); m_pGif->SetPosition(0, 0); m_pGif->Draw(); } else { delete m_pGif; m_pGif = NULL; } ........ }
即可实现GIF动画格式图片的播放。
注: 1、从资源中加载GIF图片时,加载前要把GIF图片的后缀名给换一下
2、图片如果不能正常显示,把GIF图片资源重新导入下再试
上面是从资源中加载GIF图片,如果从指定路径中加载直接用注释的那部分代码
m_pGif可能需要自己销毁
相关文章推荐
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- Unity3d:加载Gif格式图片
- VC中加载GIF格式动态图片的详细方法!
- VC的MFC工程加载GIF格式动态图片
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- 转载:用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- VC中加载GIF格式动态图片的详细方法!
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- VC中加载GIF格式动态图片
- vc2003上加载Gif格式图片
- fresco加载GIF格式图片
- VS2010调用halcon的时候出现试图加载格式不正确的程序(this.hWindowControl1 = new HalconDotNet.HWindowControl();)
- 【Android Demo】加载.gif格式图片
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- 加载JPG / JPEG / GIF / PNG 格式的图片
- iOS-使用系统类库加载gif格式图片
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- 用API OleLoadPicture通过IStream来加载JPG、GIF格式的图片
- c++使用std_image.c来加载jpg,png,gif等格式图片