Вниз
Скачать: 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.04 c
1-16287
SkullNet
2004-01-25 22:17
2004.02.06
Иконка в строке состояния.


1-16370
SniZ
2004-01-24 00:04
2004.02.06
На счёт проверки строки...


6-16552
Паша Т
2003-12-02 21:42
2004.02.06
IdFTP


3-16159
maxon
2004-01-14 14:26
2004.02.06
форматировать datetime


7-16779
Borys
2003-11-21 16:16
2004.02.06
CreateFileMapping




   Наверх