分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow
//-----------以下两句放在头文件定义的地方#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+}
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow