256-цветное изображение из res-файла
Материал из DRKB
256-цветное изображение из res-файла[править | править код]
function LoadBitmap256(hInstance: HWND; lpBitmapName: PChar): HBITMAP;
var
hPal, hRes, hResInfo: THandle;
pBitmap: PBitmapInfo;
nColorData: Integer;
pPalette: PLogPalette;
X: Integer;
hPalette: THandle;
begin
hResInfo := FindResource(hInstance, lpBitmapName, RT_BITMAP);
hRes := LoadResource(hInstance, hResInfo);
pBitmap := Lockresource(hRes);
nColorData := pBitmap^.bmiHeader.biClrUsed;
hPal := GlobalAlloc(GMEM_MOVEABLE, (16 * nColorData));
{ hPal := GlobalAlloc(GMEM_MOVEABLE, (SizeOf(LOGPALETTE) + (nColorData * SizeOf(PALETTEENTRY)));}
pPalette := GlobalLock(hPal);
pPalette^.palVersion := $300;
pPalette^.palNumEntries := nColorData;
for x := 0 to nColorData do
begin
pPalette^.palPalentry[X].peRed := pBitmap^.bmiColors[X].rgbRed;
pPalette^.palPalentry[X].peGreen := pBitmap^.bmiColors[X].rgbGreen;
pPalette^.palPalentry[X].peBlue := pBitmap^.bmiColors[X].rgbBlue;
end;
hPalette := CreatePalette(pPalette^);
GlobalUnlock(hRes);
GlobalUnlock(hPal);
GlobalFree(hPal);
end;
end.
Source: Взято с http://delphiworld.narod.ru
ID: 02167