Teď jste offline a čekáte, až se znova připojí internet.

Postupy: Jak číst soubor BMP pomocí LoadImage()

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

Projděte si také anglickou verzi článku:158898
Souhrn
LoadImage API lze načíst rastrový obrázek ze souboru BMP. Však jej nevrací informace palety. Tento článek obsahuje ukázkový kód a popisuje, jak načíst informace paletu rastrový obrázek s LoadImage.
Další informace
Následující kód používá k načtení rastru DIB jako LoadImage API a vytvoří paletu z tabulky DIB barvu. Pokud je k dispozici žádná tabulka barvu, je použit paletu polotónů:
   BOOL LoadBitmapFromBMPFile( LPTSTR szFileName, HBITMAP *phBitmap,   HPALETTE *phPalette )   {   BITMAP  bm;   *phBitmap = NULL;   *phPalette = NULL;   // Use LoadImage() to get the image loaded into a DIBSection   *phBitmap = (HBITMAP)LoadImage( NULL, szFileName, IMAGE_BITMAP, 0, 0,               LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );   if( *phBitmap == NULL )     return FALSE;   // Get the color depth of the DIBSection   GetObject(*phBitmap, sizeof(BITMAP), &bm );   // If the DIBSection is 256 color or less, it has a color table   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 );   // Clean up   free( pLogPal );   SelectObject( hMemDC, hOldBitmap );   DeleteDC( hMemDC );   }   else   // It has no color table, so use a halftone palette   {   HDC    hRefDC;   hRefDC = GetDC( NULL );   *phPalette = CreateHalftonePalette( hRefDC );   ReleaseDC( NULL, hRefDC );   }   return TRUE;   }				
následující kód demonstruje použití funkce LoadBitmapFromBMPFile:
   case WM_PAINT:   {     PAINTSTRUCT   ps;     HBITMAP       hBitmap, hOldBitmap;     HPALETTE      hPalette, hOldPalette;     HDC           hDC, hMemDC;     BITMAP        bm;   hDC = BeginPaint( hWnd, &ps );   if( LoadBitmapFromBMPFile( szFileName, &hBitmap, &hPalette ) )   {      GetObject( hBitmap, sizeof(BITMAP), &bm );      hMemDC = CreateCompatibleDC( hDC );      hOldBitmap = (HBITMAP)SelectObject( hMemDC, hBitmap );      hOldPalette = SelectPalette( hDC, hPalette, FALSE );      RealizePalette( hDC );      BitBlt( hDC, 0, 0, bm.bmWidth, bm.bmHeight,              hMemDC, 0, 0, SRCCOPY );      SelectObject( hMemDC, hOldBitmap );      DeleteObject( hBitmap );      SelectPalette( hDC, hOldPalette, FALSE );      DeleteObject( hPalette );   }   EndPaint( hWnd, &amp;ps );   }   break;				
soubor BITMAP DDB DIB BMP 4.00 kbdsd LoadImage LoadBitmap

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 158898 - Poslední kontrola: 11/21/2006 15:33:30 - Revize: 2.2

Microsoft Win32 Application Programming Interface

  • kbmt kbcode kbfaq kbhowto KB158898 KbMtcs
Váš názor
img style="display:none;" onerror="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> ">eens track by $index" class="col-sm-6 col-xs-24 ng-scope"> Venezuela - Español
mp;t=">0&did=1&t=">>/body>t" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" did=1&t=">>) + "//c.microsoft.com/ms.js'><\/script>"); >