Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

изменение палитры   Найти похожие ветки 

 
IgAn ©   (2004-01-26 09:13) [0]

Помогите, пожалуйста!
гружу файл со шрифтом, палитра такая:

0 r0 g0 b0
1 r0 g28 b0
2 r0 g56 b0
3 r0 g85 b0
4 r0 g113 b0
5 r0 g141 b0
6 r0 g170 b0
7 r0 g198 b0
8 r0 g226 b0
9 r0 g255 b0
10 r255 g255 b255
11 r4 g2 b6
12 r0 g0 b0
13 r0 g0 b0
14 r0 g0 b0
15 r0 g0 b0

хотелось бы менять цвет например с зеленого на красный.
наверное, лучше изменять палитру.
Нашел в FAQ вот это:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
Palette : HPalette;
PaletteSize : Integer;
LogSize: Integer;
LogPalette: PLogPalette;
p: integer;
begin
Palette := Image1.Picture.Bitmap.Palette;
PaletteSize := 0;
if GetObject(Palette, SizeOf(PaletteSize), @PaletteSize) = 0 then Exit;
if PaletteSize = 0 then Exit;
LogSize := SizeOf(TLogPalette) + (PaletteSize - 1) * SizeOf(TPaletteEntry);
GetMem(LogPalette, LogSize);
try
with LogPalette^ do begin
palVersion := $0300; palNumEntries := PaletteSize;
GetPaletteEntries(Palette, 0, PaletteSize, palPalEntry);
// меняю зеленый на красный ?
for p:=0 to 9 do begin
palPalEntry[p].peRed := palPalEntry[p].peGreen;
palPalEntry[p].peGreen := 0;
end;
for p:=0 to 15 do begin
shape[p].Brush.Color:=RGB(palPalEntry[p].peRed,palPalEntry[p].peGreen,palPalEntry[p].peBlue);
end;
end;
Image1.Picture.Bitmap.Palette := CreatePalette(LogPalette^);
finally
FreeMem(LogPalette, LogSize);
DeleteObject(Palette);
end;
end;


А получается ерунда - все элементы палитры - черные
Может как-то по другому легче менять цвет, подскажите...


 
Igan ©   (2004-01-26 10:59) [1]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2004.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
1-16361
lkl
2004-01-24 12:37
2004.02.06
Помогите с фильтрацией в Edit???


1-16221
Babay
2004-01-26 07:49
2004.02.06
XPmanifest и Dll (большой ворос)


1-16228
DDA
2004-01-26 19:17
2004.02.06
Country?


9-16027
VitGun
2003-07-21 19:24
2004.02.06
Редактор уровней под GLScene.


3-16191
чайник1
2004-01-13 14:48
2004.02.06
Код ошибки пустой