tank145161 发表于 2010-12-11 10:27:28

跪求“还原摄像头数据上位机”源码!~

小弟进来做一个OV7620的上位机,现在能取出数据传进PC,但怎么把十六进制数据还原成BMP或是jepg呢。。。
求源码参考~~
最好是基于MFC的~
拜谢!!
499431434@qq.com

jackiezeng 发表于 2010-12-11 10:41:08

完全可以把这些数据写到一个TXT文件里,完成后再更改成JPG , 再显示这张图片,

tank145161 发表于 2010-12-11 11:15:15

是个办法!~但是按照JPG的编码方式写东西有些痛苦~MFC有没类似的类或API函数自动根据数据合成图片~

tank145161 发表于 2010-12-11 15:29:19

等高手!~

sendmessage 发表于 2010-12-14 15:10:04

自己GDI刷屏呀

void DisplayDataThread(LPVOID param)
{
        CProcessThread *pThread=(CProcessThread*)param;
        memset(&pThread->m_BmpInfo, 0, sizeof(pThread->m_BmpInfo));
        pThread->m_BmpInfo.bmiHeader.biSize            = sizeof(BITMAPINFO) ;
        pThread->m_BmpInfo.bmiHeader.biWidth         = pThread->m_Width;
        pThread->m_BmpInfo.bmiHeader.biHeight          = pThread->m_Height;
        pThread->m_BmpInfo.bmiHeader.biPlanes          = 1;
        pThread->m_BmpInfo.bmiHeader.biBitCount      = 24;
        pThread->m_BmpInfo.bmiHeader.biCompression   = BI_RGB ;
        pThread->m_BmpInfo.bmiHeader.biSizeImage       = pThread->m_Width * pThread->m_Height * 3;
        pThread->m_BmpInfo.bmiHeader.biXPelsPerMeter   = 0;
        pThread->m_BmpInfo.bmiHeader.biYPelsPerMeter   = 0;
        pThread->m_BmpInfo.bmiHeader.biClrUsed         = 0;
        pThread->m_BmpInfo.bmiHeader.biClrImportant    = 0;
       
        HDC hdc=GetDC(pThread->m_hWnd);
        int x,y;

        /************************使图像居中显示*********************************/
        x=::GetSystemMetrics(SM_CXSCREEN); //获取系统当前分辨率
        y=::GetSystemMetrics(SM_CYSCREEN); //获取系统当前分辨率
        if (x>pThread->m_Width) x=(x-pThread->m_Width)/2-10;
        else x=0;
        if (y>pThread->m_Height) y=(y-pThread->m_Height)/2-50;
        else y=0;
        /***********************************************************************/

        while(pThread->m_DisPlayFlag && pThread->m_LoopFlag)
        {
                if(pThread->m_DispPlayStart)
                {
                        pThread->MirrorImage(pThread->m_pSensorBuf,pThread->m_TempBuf,pThread->m_Width,pThread->m_Height,pThread->m_OutMode);
                        if(RAWMODE==pThread->m_OutMode) pThread->BayerConvRGB24(pThread->m_TempBuf,pThread->m_pDisPlayBuf,pThread->m_Width,pThread->m_Height);
                        else pThread->YUV_To_RGB(pThread->m_TempBuf,pThread->m_pDisPlayBuf,pThread->m_Width,pThread->m_Height,pThread->m_OutMode);
                        ::StretchDIBits(hdc,//显示
                                x,
                                y,
                                pThread->m_Width,
                                pThread->m_Height,
                                0,
                                0,
                                pThread->m_Width,
                                pThread->m_Height,
                                pThread->m_pDisPlayBuf,
                                &pThread->m_BmpInfo,
                                DIB_RGB_COLORS,
                                SRCCOPY
                                );
                        pThread->m_DispPlayStart=false;
                }       
                Sleep(2);
        }
        ReleaseDC(pThread->m_hWnd,hdc);
        _endthread();
}
页: [1]
查看完整版本: 跪求“还原摄像头数据上位机”源码!~