大家好,我一个菜鸟,这几天我在做一个项目,用VC+编写,遇到一个好多天都没有解决的难题,就是怎样将文字转化成位图,不知道怎样解决,十万火急呀,希望高手们给出出注意。谢谢啦

解决方案 »

  1.   

    一个简单的方法,现在DC上输出你的文字,然后将DC保存成位图
      

  2.   


    对,可以先得到文字的区域,然后截部分内存图片就行了,然后保存,这个过程中应该使用OpenCv比较容易一点;直接写BMP位图也行。
      

  3.   

    http://topic.csdn.net/u/20081111/11/587ca90d-8b6b-4f08-be56-bace7d33764a.html
      

  4.   

    如果你使用VC2005,直接使用这个类CImage
      

  5.   


    void CPdf417View::OnFileSave() 
    {
    // TODO: Add your command handler code here
    TCHAR szFilters[]=_T("位图文件(*.bmp)|*.bmp||");
    CFileDialog dlg(FALSE,_T("bmp"),_T("*.bmp"),OFN_HIDEREADONLY,szFilters);
    if(dlg.DoModal()==IDOK)
    {
    CFile file(_T(dlg.GetFileName()),CFile::modeWrite|CFile::modeCreate);
    if(!file)
    AfxMessageBox("Cannot save the file!");

    BITMAPINFO *m_pBMI;
            BYTE *m_pDIBData;
            BITMAPFILEHEADER bfh;
            BITMAPINFOHEADER bi;
            BITMAP BM;
    RGBQUAD rgb[2]=
    { {0,0,0,0},
    {255,255,255,0}
    };
    int x = sizeof(RGBQUAD);
            pBitmap->GetObject(sizeof(BM),&BM);
            CClientDC dc(this);
            bi.biSize = sizeof(BITMAPINFOHEADER);
            bi.biWidth = m_pic.m_ModelWidth+m_pic.m_Px+17*m_pic.m_ModelWidth*m_pic.m_LineModelNum +1 ;
            bi.biHeight = m_pic.m_Py+m_pic.m_LineNum*m_pic.m_ModelHight+10;
            bi.biPlanes = 1;
            bi.biBitCount = 1;
            bi.biCompression = 0;
            bi.biSizeImage = 0;
            bi.biXPelsPerMeter = 0;
            bi.biYPelsPerMeter = 0;
            bi.biClrUsed = 0;
            bi.biClrImportant = 0; bfh.bfType=0x4d42;
            bfh.bfOffBits=sizeof(bfh)+sizeof(BITMAPINFOHEADER)+2*sizeof(RGBQUAD);
            bfh.bfSize=bfh.bfOffBits+BM.bmWidth*BM.bmHeight;
            bfh.bfReserved1=0;
            bfh.bfReserved2=0;

    m_pBMI=(BITMAPINFO*)new char[sizeof(BITMAPINFO)];
            m_pDIBData=(BYTE*)new char[bfh.bfSize-bfh.bfOffBits]; memcpy(m_pBMI,&bi,sizeof(BITMAPINFOHEADER));
            GetDIBits(dc.GetSafeHdc(), (HBITMAP)pBitmap->GetSafeHandle(), 0l, (DWORD)bi.biHeight,
            (LPVOID)m_pDIBData,(LPBITMAPINFO)m_pBMI, (DWORD)DIB_RGB_COLORS); file.Write(&bfh,sizeof(bfh));
            file.Write(m_pBMI,sizeof(BITMAPINFOHEADER));
            file.Write(rgb,2*sizeof(RGBQUAD));
            file.Write(m_pDIBData,BM.bmWidth*BM.bmHeight);
    file.Close();
    }

    }
      

  6.   

    不会DC也可以getpixel()然后直接写成BMP文件。