www.pudn.com > 数字硬盘录像机软件代码.rar > DIBPAL.CPP


 
#include "stdafx.h" 
#include "dib256.h" 
#include "dibpal.h" 
 
CBmpPalette::CBmpPalette( CDIBitmap* pBmp ) 
{ 
    ASSERT( pBmp ); 
    int cPaletteEntries = pBmp->GetPalEntries(); 
    int cPalette = sizeof(LOGPALETTE) + 
                   sizeof(PALETTEENTRY) * cPaletteEntries; 
    LOGPALETTE* pPal = (LOGPALETTE*)new BYTE[cPalette]; 
    RGBQUAD*    pColorTab = pBmp->GetColorTablePtr(); 
    pPal->palVersion = 0x300; 
    pPal->palNumEntries = cPaletteEntries; 
    for( int ndx = 0; ndx < cPaletteEntries; ndx++ ) 
    { 
        pPal->palPalEntry[ndx].peRed   = pColorTab[ndx].rgbRed; 
        pPal->palPalEntry[ndx].peGreen = pColorTab[ndx].rgbGreen; 
        pPal->palPalEntry[ndx].peBlue  = pColorTab[ndx].rgbBlue; 
        pPal->palPalEntry[ndx].peFlags = NULL; 
    } 
    VERIFY( CreatePalette( pPal ) ); 
    delete [] (BYTE*)pPal; 
}