大家好,我想在VC中读取一个位图的象素值,并将其存入一个数组中
应该怎么做呢?请大家帮忙了  谢谢了先!

解决方案 »

  1.   

    先搞清楚bmp文件格式,再把图像数据放到读到数组来
      

  2.   

    这个应该比较简单,直接用GetPixel函数就可以了.
      

  3.   

    使用GetPixel函数,还有在这段函数之间不要用断点,不然会出错
      

  4.   

    #define X_OFF 100 // 图片在 背景上显示的 x 位置
    #define Y_OFF 100 // 图片在 背景上显示的 y 位置
    #define OP & // 图片在背景上的 叠加效果:+,-,*,/,|,&,^,... BITMAP bm1;
    BITMAP bm2;
    int x,y;

    GetClientRect( &rect ); mdc = new CDC; 
    mdc->CreateCompatibleDC( dc ); // 建立与 dc 兼容的 DC bitmap = new CBitmap;
    bgbmp = new CBitmap; bgbmp->m_hObject = (HBITMAP)::LoadImage(NULL,"bground.bmp",IMAGE_BITMAP,rect.right,rect.bottom,LR_LOADFROMFILE); //载入背景图
    bitmap->m_hObject = (HBITMAP)::LoadImage(NULL,"girl.bmp",IMAGE_BITMAP,298,329,LR_LOADFROMFILE); //载入源位图 bitmap->GetObject( sizeof(BITMAP),&bm1 ); // 取得 bitmap 位图的信息
    unsigned char *px1 = new unsigned char[ bm1.bmHeight*bm1.bmWidthBytes ]; // 声明暂存数组
    bitmap->GetBitmapBits( bm1.bmHeight*bm1.bmWidthBytes,px1 );读一下上面的代码也许有帮助.