zoukankan      html  css  js  c++  java
  • DirectShow自带实例StillCap在回调函数里实现抓图并保存为文件

        STDMETHODIMP BufferCB( double dblSampleTime, BYTE * pBuffer, long lBufferSize )
        {
            // this flag will get set to true in order to take a picture
            //
            CBitmap bm;
            bm.CreateBitmap(640, 480, 1, 24, pBuffer);

            BITMAPFILEHEADER    BMFileHeader;  
            BITMAPINFOHEADER    BMInfoHeader;  
            BITMAP                BM;  
            bm.GetObject(sizeof(BM),&BM);    
            BMInfoHeader.biSize                =   sizeof(BITMAPINFOHEADER);  
            BMInfoHeader.biWidth            =   BM.bmWidth;  
            BMInfoHeader.biHeight            =   BM.bmHeight;  
            BMInfoHeader.biPlanes            =   1;  
            BMInfoHeader.biBitCount            =   24;  
            BMInfoHeader.biCompression        =   0;  
            BMInfoHeader.biSizeImage        =   0;  
            BMInfoHeader.biXPelsPerMeter    =   0;  
            BMInfoHeader.biYPelsPerMeter    =   0;  
            BMInfoHeader.biClrUsed            =   0;  
            BMInfoHeader.biClrImportant        =   0;  

            BMFileHeader.bfType        =0x4d42;  
            BMFileHeader.bfOffBits    = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);  
            BMFileHeader.bfSize        =BMFileHeader.bfOffBits + BM.bmWidth * BM.bmHeight * 3;  
            BMFileHeader.bfReserved1=0;  
            BMFileHeader.bfReserved2=0;  

            CFile   file;  
            if(!file.Open(_T("d:\\aa.bmp"),CFile::modeCreate|CFile::modeWrite))  
            {  
                return 0;  
            }  
            file.Write(&BMFileHeader, sizeof(BITMAPFILEHEADER));  
            file.Write(&BMInfoHeader, sizeof(BITMAPINFOHEADER));  
            file.Write(pBuffer, BM.bmWidth * BM.bmHeight * 3);  
            file.Close();  

            bm.DeleteObject();
  • 相关阅读:
    Randomization Tests
    关于Spring中的<context:annotationconfig/>配置
    PUT method support
    在对话框picture control中利用opengl进行绘图
    【学习笔记】《卓有成效的管理者》 第三章 我能贡献什么
    程序员的黄金时代
    nginx webdav配置
    iphone4s 如何强制关机
    并查集
    实战虚拟化存储设计之三MultiPathing
  • 原文地址:https://www.cnblogs.com/cplusplus/p/2452953.html
Copyright © 2011-2022 走看看