本文来自http://blog.csdn.net/hellogv/
首先,本文适合那些由网络传输得到的JPEG、GIF图像显示,因为这些图像都是以“BYTE数组”这种形式传输。
直接给出函数,不说废话了!
//-----------以下两句放在头文件定义的地方
#include "Gdiplus.h"
using namespace Gdiplus;
//-----------以下代码修改一下变量为自己的变量,即刻使用
void Readfrombuffer(char* video_data,int size)
{
GdiplusStartupInput m_gdiPlusInPut;
ULONG_PTR m_gdiPlusToken;
GdiplusStartup( &m_gdiPlusToken, &m_gdiPlusInPut, NULL ); //初始化GDI+
IPicture *pPic;
IStream *pStm ;
//分配全局存储空间
HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,size);
LPVOID pvData=NULL ;
//锁定分配内存块
pvData=GlobalLock(hGlobal);
//复制数据包video_data到pvData
memcpy(pvData,video_data,size);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
ULARGE_INTEGER pSeek;
LARGE_INTEGER dlibMove ={ 0 } ;
pStm->Seek(dlibMove,STREAM_SEEK_SET ,&pSeek);
Sleep(15);
//装入图形文件
if(FAILED(OleLoadPicture(pStm,size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{//附:如果video_data这个数组包含的图像有错,则OleLoadPicture 容易产生读写内存错误
pPic->Release();
pStm->Release();
return ;
}
Image img(pStm,0);
Graphics mGraphics(GetDC(hwnd));
mGraphics.DrawImage(&img, 0, 0, Video_Width, Video_Height);
img.~Image();//会出错
mGraphics.~Graphics();
pPic->Release();
pStm->Release();
GdiplusShutdown(m_gdiPlusToken); //销毁GDI+
}
分享到:
相关推荐
例如,从这个压缩包中的03文件,我们可以推测这是一个编号为第三的图像处理程序,可能涉及到读取、操作和显示JPEG或GIF图像。 在VC中,处理JPEG图像通常会用到如libjpeg库,它提供了读写JPEG文件的接口。开发者需要...
在VC++环境中,显示JPEG和GIF格式的图像通常需要额外的工作,因为MFC库默认只支持未经压缩的BMP位图。以下是一种利用COM接口和OLE技术在VC++下显示JPEG和GIF图像的简便方法。 首先,JPEG(Joint Photographic ...
本项目“用vc实现显示bmp,jpg以及gif的动态显示”着重解决了GIF动图在VC环境下的动态渲染问题。 首先,我们需要了解BMP、JPG和GIF的基本概念。BMP是微软公司开发的一种位图格式,无损压缩,存储的数据量大但色彩...
在VC++ 6.0开发环境中,利用MFC(Microsoft Foundation Classes)库,可以实现对多种图像格式,如BMP、JPG、GIF、TIFF和RAW的支持。以下将详细讲解如何在VC++ 6.0中进行这些操作。 首先,你需要了解不同图像格式的...
5. 错误处理:在读取和显示图像时,必须处理可能出现的错误,例如文件不存在、内存不足、格式不支持等。使用异常处理机制来捕获和处理这些错误。 6. 性能优化:对于大量图像的读取,考虑使用异步加载或者预加载策略...
在Visual C++ (VC) 开发环境中处理图像时,经常会遇到需要加载各种格式图片(如 JPG、JPEG、GIF 和 PNG)的需求。本文将详细介绍如何在 VC 下简单有效地加载这些格式的图片。 #### 1. 使用 `LoadBitmap` 和 `...
在MFC(Microsoft Foundation Classes)程序中显示JPG和GIF图像是一项常见的需求,尤其是在开发图形用户界面的应用程序时。MFC是微软提供的一套C++类库,用于简化Windows应用程序的开发。以下将详细解释如何在MFC...
在VC中,可以使用MFC或Qt等库创建GUI,实现图像预览、参数设置等功能。 9. **文件I/O操作**:处理图像时,需要读取和保存图像文件。理解二进制和文本文件的读写,以及如何使用内存映射文件提高大文件处理效率,都是...
在Windows编程环境中,CImage类是一个非常实用的工具,它为开发者提供了方便的方式来处理和操作图像,特别是JPEG、BMP、GIF和PNG这四种常见的图像格式。CImage类是Microsoft ATL(Active Template Library)的一部分...
如果一切正确,你应该能看到从磁盘读取的PNG图像在屏幕上显示,同时程序也能够保存用户所做的任何改变。 在实践中,你可能需要对这些基本步骤进行调整,以适应你的具体需求。例如,你可能需要处理颜色空间转换、...
在这个项目中,"bmp,jpeg,gif显示"意味着系统能够读取并显示这三种格式的图像。这通常涉及到文件读取、解码和在窗口上绘制的过程。例如,对于BMP,我们需要解析头部信息来获取图像宽度、高度和像素数据;JPEG和GIF...
在编程领域,尤其是在开发图形用户界面(GUI)的应用程序时,常常需要在程序中集成图像显示功能,以增强用户体验或实现特定的可视化需求。在这个示例中,我们关注的是如何在MFC(Microsoft Foundation Classes)框架...
1. 图像文件格式:如BMP、JPEG、GIF等,理解这些格式对于读取、存储和显示图像至关重要。 2. 调色板操作:这是图像编程的基础,用于控制颜色的显示和处理。 3. 图像的读取、存储、显示及尺寸获取:这是图像处理的...
使用 VC6.0 实现 GIF 图片的显示 本文将介绍使用 VC6.0 实现 GIF 图片的显示,包括设计思路、实现步骤和相关代码。 一、引言 JPEG 图像压缩标准是一种...通过这种方法,我们可以在 VC6.0 中实现 GIF 图片的显示。
- 图像格式:常见的图像文件格式有BMP、JPEG、PNG、GIF等,每种格式都有其特点和适用场景。 2. 图像获取: - 数码相机和扫描仪:通过硬件设备获取图像,可以通过VC接口与这些设备交互,读取图像数据。 - 屏幕...