如何调入一张BMP的图片,屏幕上显示出来?是用LoadImage还是LoadBitmap,用什么函数可以把他们显示在屏幕上?
又,如果是灰度图片怎样取得每个像素的灰度值?

解决方案 »

  1.   

    BMP位图文件结构及VC操作:
    http://www.vchelp.net/vchelp/zart/bmpc.asp?type_id=18&class_id=1&cata_id=12&article_id=82
      

  2.   

    PCX Viewer:
    http://www.copathway.com:9191/vchelp/zsrc/pcxview_src.zip
      

  3.   

    CxImage:
    http://www.codeproject.com/bitmap/cximage.asp
      

  4.   

    LoadBitmap只能从资源里读,而LoadImage可以从磁盘文件上读,所以建议LoadImage()
    我的位图类片断:
    BOOL CImageFile::LoadBMP(LPCTSTR lpszPathName)
    {
    if(IsLoaded()) //已经载入过位图
    {
    m_Bitmap.Detach();
    DeleteObject(m_hBitmap);
    m_hBitmap=NULL;
    }
    m_hBitmap=(HBITMAP)::LoadImage(NULL,lpszPathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
        
    if(m_hBitmap==NULL)
    { TRACE("Load Bitmap Error");
    return false;
    }

    m_Bitmap.Attach(m_hBitmap);
    strFileType="BMP";
    return true;
    }void CImageFile::ShowBMP(CDC *pDC, int nBeginX, int nBeginY)//显示位图到DC
    {
    CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    memDC.SelectObject(&m_Bitmap);
    pDC->BitBlt(nBeginX,nBeginY,GetWidth(),GetHeight(),&memDC,0,0,SRCCOPY);
    }