我用大恒采集卡从视频中获取一帧,取得这帧的数据。  
获取的bmp图像的数据。通过这个数据,如何显示bmp图片? 
这里不要通过保存为文件(*.bmp)来显示。 
请问在VC/MFC如何直接通过内存,显示图片? 

解决方案 »

  1.   

    SetStretchBltMode(dc.m_hDC , COLORONCOLOR);
    StretchDIBits(dc.m_hDC , 0 , 0 , VIDEOWIDTH , VIDEOHEIGHT , 0 , 0 , VIDEOWIDTH , VIDEOHEIGHT,
    &ImageBuf , &bitInfo , SRCCOPY);
      

  2.   

    楼上,我现在是需要在对话框上显示,我已经用采集卡BMP把图片保存在内存中了,下面我用下面这段代码把内存中图片转换成位图句柄:HBITMAP CssDlg::BufferToHBITMAP()
    {
        HBITMAP                hShowBMP;
        LPSTR                hDIB,lpBuffer = m_pBMPBuffer;
        LPVOID                lpDIBBits;
        BITMAPFILEHEADER     bmfHeader;
        DWORD                bmfHeaderLen;
        
        bmfHeaderLen = sizeof(bmfHeader);
        strncpy((LPSTR)&bmfHeader,(LPSTR)lpBuffer,bmfHeaderLen);    if (bmfHeader.bfType != (*(WORD*)"BM")) return NULL;
        hDIB = lpBuffer + bmfHeaderLen;
        BITMAPINFOHEADER &bmiHeader = *(LPBITMAPINFOHEADER)hDIB ;
        BITMAPINFO &bmInfo = *(LPBITMAPINFO)hDIB ;    lpDIBBits=(lpBuffer)+((BITMAPFILEHEADER *)lpBuffer)->bfOffBits;
        CClientDC dc(this);
        hShowBMP = CreateDIBitmap(dc.m_hDC,&bmiHeader,CBM_INIT,lpDIBBits,&bmInfo,DIB_RGB_COLORS);
        return hShowBMP;
    }
    请问如何连接?m_pBMPBuffer这个指针怎么附值?谢谢
      

  3.   

    m_pBMPBuffer是什么东西??如果他是采集卡采集到数据的指针,那么,我的那行代码里的ImageBuf就是可以用m_pBMPBuffer替换不过如果是用对话框显示,需要使用双缓冲技术。我QQ:270463168
      

  4.   

    m_pBMPBuffer是采集卡得到数据指针,我是想通过对话框显示,顺便问下 如何将内存中的bmp数据转化成jpg数据,并保存到文件?  通过什么方法控制jpg的质量?  
    现在在忙,一会加你qq