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();
  • 相关阅读:
    springboot项目引入通用mapper(tk.mybatis.mapper)的时候一些可能会踩的坑
    Zookeeper和Dubbo基本配置和调用
    Zookeeper和Dubbo介绍
    Git的基础命令大全,拉取推送,分支,合并,冲突
    Maven内置tomcat
    Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号
    SpringMvc的自定义异常,交给SpringMvc管理
    IDEA创建MavenWeb项目慢,问题根除
    Docker安装指南
    Docker容器入门
  • 原文地址:https://www.cnblogs.com/cplusplus/p/2452953.html
Copyright © 2011-2022 走看看