Создание и использование 256-цветной палитры

Советы » Цвета и Палитра » Создание и использование 256-цветной палитры

Вот пример того, как можно создать и использовать палитру для 256-цветных изображений. Вам, вероятно, необходимо использовать API функции SelectPalette и RealizePalette, в зависимости от того как вы хотите использовать ваше изображение.

procedure

TfrmMain.MakePalette(forBitMap: TBitMap); var

pNewPal: PLogPalette; lSize: LongInt; nCntr: Byte; begin

lSize := SizeOf(TLogPalette) + SizeOf(TPaletteEntry) * 256; try

GetMem(pNewPal, lSize); pNewPal^.palNumEntries := 256; pNewPal^.palVersion := $300; {$R-} {выключаем контроль допустимого диапазона} {создаем данные палитры...} for

nCntr := 0 to

254 do

begin

pNewPal^.palPalEntry[nCntr].peRed := nCntr + 20; pNewPal^.palPalEntry[nCntr].peGreen := nCntr + 20; pNewPal^.palPalEntry[nCntr].peBlue := nCntr + 20; pNewPal^.palPalEntry[nCntr].peFlags := pc_nocollapse; end

; {$R+} {включаем контроль допустимого диапазона} {удаляем старый hPal; предохраняемся от утечки памяти} DeleteObject(hPal); {создаем новую палитру на основе новых значений} hPal := CreatePalette(pNewPal^); {назначаем новую палитру} forBitMap.Palette := hPal; finally

FreeMem(pNewPal, lSize); end

; end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com