Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
1-16370
SniZ
2004-01-24 00:04
2004.02.06
На счёт проверки строки...


8-16525
JB
2003-09-26 13:03
2004.02.06
Рендеринг в jpg или bmp файл


4-16822
kin_soft
2003-11-24 07:32
2004.02.06
WinApi wNetShareAdd где она в Дельфи?


1-16265
Taras
2004-01-24 20:25
2004.02.06
Приложение в стиле Win XP


1-16486
Night Flame
2004-01-27 15:28
2004.02.06
DrawGrid




   Наверх