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();
  • 相关阅读:
    IssueQuery failed in redmine rake tasks
    rubymine 调试 redmine
    redmine rake tasks
    rails tutorial sample app
    win7 chm 打开失败记录
    rails再体验(第一个程序)
    Bitnami Redmine插件开发记录
    redmine export long csv file failed: 502 proxy error
    Java时区切换时的需要注意
    Android No static field XXX of type I in class Lcom/XXX/R$id错
  • 原文地址:https://www.cnblogs.com/cplusplus/p/2452953.html
Copyright © 2011-2022 走看看