显示GIF图像

GIF图像有多种显示方法。据我所知的有三种。

第一种:通过WEB Brower控件显示GIF图像(缺点:有滚动条,需要专门的祛滚动条。我这里有祛滚动条的Demo,需要的朋友请留言。)

第二种:就是我今天想要说的方法。CPictureEX类显示GIF(我看好这种方法,除了类比较大点,真的很好用。)

第三种:引用第三方控件。我只是听说过没有实际操作过这种方法。

 

我们来谈谈CPictureEX:

CPictueEx不仅可以显示GIF(包括GIF动画),还可以显示JPEG、BMP、WMF、ICO、CUR(所有OleLoadPicture能辨别的)。
基本接口如下:

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) ――设置当前绘制的矩形;

 

CPictureEX[Wnd]::Load 函数有三个版本:
BOOL Load(LPCTSTR szFileName);
该版本的Load函数从一个文件加载。返回类型表现加载是否胜利。
BOOL Load(HGLOBAL hGlobal, DWORD dwSize);

该版本的Load函数获取全局内存块句柄,用 GlobalAlloc 及 GMEM_MOVEABLE 标记分配内存。该函数不会释放分配的内存,所以不要忘却调用 GlobalFree。返回值表现加载是否胜利。 )
BOOL Load(LPCTSTR szResourceName,LPCTSTR szResourceType); )
该函数获取图像资源名和资源类型,例如:
m_Picture.Load(MAKEINTRESOURCE(IDR_MYPIC),_T("GIFTYPE"));  

 

 获取资源名和类型后加载对应的图像,并用 CPictureEx[Wnd]::Draw() 显示图像,如果图像是动画 GIF,该函数会启动一个背景处置线程完成动画显示,对于非动画 GIF,则用 OleLoadPicture/IPicture。显示。
  任何时候ni都可以用 CPictureEx[Wnd]::Stop() 函数终止背景处理线程。如果你不仅想结束动画,还想释放所有资源,使用 CPictureEx[Wnd]::UnLoad() (CPictureEx[Wnd]::Load() 主动调用UnLoad() )。
  缺省情形下,图像的背景是用 COLOR_3DFACE 填充的(对话框窗口的色彩),如果ni须要转变图像背景,调用 CPictureEx[Wnd]::Load()之后调用 CPictureEx[Wnd]::SetBkColor(COLORREF) 即可。
  使用 CPictureEx[Wnd]::SetPaintRect(const LPRECT) 函数可以设置一个剪贴矩形,LPRECT 参数告知类它应当显示图像的哪一部分。如果不设置剪贴矩形,则显示整幅图像。
  使用 Stop()/Draw() 可以结束动画GIF,调用Draw() 后可继续从停滞的那一帧继续显示。借助 IsPlaying() 函数,ni还可以知道当前是否在显示动画

 

下面我们用MFC来做个测试:

1:新建一个对话框工程(我这里是GIF),工程中加入PictureEx.h和PictureEx.cpp.这个类可以在网上下载到。
网址:http://d.download.csdn.net/down/1458419/tonypioneer

2:在你的对话框中加入一个静态文本控件(Static Text)或图片控件(Picture Control),Group Box也可以;   

3:给控件的ID改个名字如IDC_PICTURE,并关联变量m_Picture;    

4:在对话框的头文件中用CPictureEx替换CStatic,包含头文件#include "PictureEx.h";   

5:在OnInitDialog(或者其他什么你喜欢的地方)加入下面的代码:   if (m_Picture.Load(_T("mypicture.gif")))   

   m_Picture.Draw();   

这样就可以了:

效果图如下:

 

 

有兴趣的朋友可以参考更多的资料:

http://vcer.net/1076417661390.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: LabWindows是一种由National Instruments开发的基于Windows的软件开发环境,用于测试、测量和控制应用程序的开发。GIF是一种常见的图像格式,用于在网页和其他应用程序中显示图像。要在LabWindows中显示GIF图像,您需要使用适当的工具和库来加载和解码图像文件,并在用户界面中显示它们。常见的工具包括OpenCV和ImageMagick。您可以使用这些工具中的函数来加载GIF文件,并将其转换为LabWindows支持的格式,然后在您的应用程序中显示它。 ### 回答2: GIF图像是一种常见的图像文件格式,用于在网页、社交媒体和其他应用程序中显示动态图像。LabWindows是一种开发环境软件,主要用于进行数据采集、仪器控制和实验控制等科学实验和工程方面的应用。 当我们说GIF图像显示_labwindows时,可以理解为在LabWindows开发环境下使用代码或工具来显示和处理GIF图像。在LabWindows中,可以使用适当的图像处理函数和库来读取和显示GIF图像文件。 在LabWindows中显示GIF图像需要以下步骤: 1. 导入适当的图像处理库或模块,例如OpenCV。 2. 使用代码加载GIF图像文件,获取图像的每一帧。 3. 使用LabWindows的图形界面函数或控件来显示每一帧图像,可以使用控件或窗口来创建图像画布。 4. 使用适当的调节函数或工具来控制图像播放速度、循环次数等参数。可以使用定时器函数来控制帧率。 5. 可以进一步进行图像处理,如调整亮度、对比度、图像滤波等。 通过使用LabWindows来显示GIF图像,我们可以更好地控制和处理图像,为科学实验和工程应用提供更多选择和灵活性。 ### 回答3: GIF图像可以在LabWindows中进行显示和处理。LabWindows是一种功能强大的集成开发环境(IDE),适用于创建、测量和控制科学和工程应用程序。 在LabWindows中,可以使用GIF图像来展示实验数据的结果和图形。LabWindows提供了丰富的图像处理和显示功能,可以对GIF图像进行加载、解码和显示。通过使用图像显示库函数,可以方便地将GIF图像加载到应用程序中,并将其显示在用户界面上。 在显示GIF图像时,LabWindows提供了一些选项来控制图像的大小、位置和外观。开发人员可以根据需要选择合适的显示参数,以确保图像在界面中得到正确且美观的展示。LabWindows还提供了缩放、旋转和翻转图像等功能,使用户可以根据实际需求对GIF图像进行进一步处理和定制。 此外,在LabWindows中,可以通过编程方式对GIF图像进行处理。开发人员可以使用LabWindows的图像处理函数来对GIF图像进行编辑、滤波和分析等操作。这些功能可以应用于诸如图像增强、特征提取和目标检测等应用领域。 总而言之,GIF图像在LabWindows中具有广泛的应用。通过LabWindows提供的图像处理和显示功能,开发人员能够方便地加载、显示和处理GIF图像,以满足科学和工程应用中的各种需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值