怎样载入一幅bitmap,并获得象素的2个字节的信息,保存到内存的序列中?
希望各位xdjm帮帮忙,急啊!!

解决方案 »

  1.   

    载入图像我知道用SHLoadDIBitmap(LPCTSTR szFileName)可以,但是返回的是HBITMAP,,而我希望能够
    返回位图每一pixel的信息,用数组来保存起来,再进行其他的处理.有人能帮忙解决一下吗?
    多谢了....
      

  2.   

    用GetObject()函数。
    GetObject(HBITMAP,sizeof(bitmap),&bm);
    if((if( ( bm.bmBitsPixel * bm.bmPlanes ) <= 8 )
       {
       HDC           hMemDC;
       HBITMAP       hOldBitmap;
       RGBQUAD       rgb[256];
       LPLOGPALETTE  pLogPal;
       WORD          i;   // Create a memory DC and select the DIBSection into it
       hMemDC = CreateCompatibleDC( NULL );
       hOldBitmap = (HBITMAP)SelectObject( hMemDC, *phBitmap );
       // Get the DIBSection's color table
       GetDIBColorTable( hMemDC, 0, 256, rgb );
       // Create a palette from the color tabl
       pLogPal = (LOGPALETTE *)malloc( sizeof(LOGPALETTE) + (256*sizeof(PALETTEENTRY)) );
       pLogPal->palVersion = 0x300;
       pLogPal->palNumEntries = 256;
       for(i=0;i<256;i++)
       {
         pLogPal->palPalEntry[i].peRed = rgb[i].rgbRed;
         pLogPal->palPalEntry[i].peGreen = rgb[i].rgbGreen;
         pLogPal->palPalEntry[i].peBlue = rgb[i].rgbBlue;
         pLogPal->palPalEntry[i].peFlags = 0;
       }
       *phPalette = CreatePalette( pLogPal );
    }
      

  3.   

    你把文件直接读进来 CFile
    如果是灰度图偏移1078就行了,
    彩色图偏移54就行了
      

  4.   

    to 5will:
       能否详细点说明,把程序写一下,我的程序主要是用c写的...