Назначение палитры Bitmap

Материал из DRKB


Если вы рисуете на TImage....

Во-первых, вам нужно использовать Image1.Picture.bitmap, а не Image.Canvas. Причина кроется в том, что Image1.Picture.Bitmap имеет палитру, в TImage нет.

Затем палитру необходимо назначить. Вот пример:

// Устанавливаем Width и Height перед использованием
// Image1.Picture c Bitmap Canvasvar
var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  Bitmap.LoadfromFile({'Whatever.bmp'});

  with Image2.Picture.Bitmap do
  begin
    Width := Bitmap.Width;
    Height := Bitmap.Height;
    Palette := Bitmap.Palette;
    Canvas.Draw(0, 0, Bitmap);
    Refresh;
  end;
end;


Если вы рисуете на канве формы...

  Canvas.Draw(0, 0, Bitmap);
  SelectPalette(Form1.Canvas.Handle, Bitmap.Palette, True);
  RealizePalette(Form1.Canvas.Handle);


Source: http://delphiworld.narod.ru/
ID: 03715
ID: 03771