如何生成一个调色板? (42分)

  • 主题发起人 主题发起人 哦哦哦哦哦
  • 开始时间 开始时间

哦哦哦哦哦

Unregistered / Unconfirmed
GUEST, unregistred user!
我想生成一个文件只有1024个字节,就是一个调色板,该怎么做最快呢?
 
procedure TForm1.Button1Click(Sender: TObject);
var
lpPalette : PLogPalette;
hPal : hPalette;
i : integer;
begin

{Allocate the memory used by the palette}
GetMem(lpPalette,
sizeof(TLogPalette) + (255 * sizeof(TPaletteEntry)));

{Fill out the palette header}
lpPalette^.palVersion := $300;
lpPalette^.palNumEntries := 256;

{Turn range checking off if it is on and}
{remember the range checking state}
{$IFOPT R+}
{$DEFINE CKRANGE}
{$R-}
{$ENDIF}

{Fill in the palette structure color table with shades of gray}
for i := 0 to 255 do begin
lpPalette^.PalPalEntry.peRed := i;
lpPalette^.PalPalEntry.peGreen := i;
lpPalette^.PalPalEntry.peBlue := i;
end;

{Turn range checking back on if it was on when we started}
{$IFDEF CKRANGE}
{$UNDEF CKRANGE}
{$R+}
{$ENDIF}

{Create a palette handle}
hPal := CreatePalette(lpPalette^);

{Free the memory use by the palette structure}
FreeMem(lpPalette,
sizeof(TLogPalette) + (255 * sizeof(TPaletteEntry)));

{Do something with the palette here}

{Delete the palette handle after use}
DeleteObject(hPal);
end;
 
多人接受答案了。
 
后退
顶部