![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заменить цвета прописанные в массиве [D7, WinXP]
Leeechhhh © (2005-03-18 10:13:00)у ня есть имэдж с картинкой, и массив с определёнными цветами, как мне зменить на картинке только те цвета, которые прописанны в массиве??
Fenik (2005-03-18 22:33:00) [1]Например
Bmp.Transparent := True;
Bmp.TransparentColor := clRed;
Bmp2.Canvas.Draw(0, 0, Bmp);
Bmp.TransparentColor := clGreen;
Bmp2.Canvas.Draw(0, 0, Bmp);
Bmp.TransparentColor := clYellow;
Bmp2.Canvas.Draw(0, 0, Bmp);
Но быстрее будет пройтись по всем пикселям. Читай статью на этом сайте "Быстро поставить точку" (где-то на 5-й странице в статьях).
Leeechhhh (2005-03-18 18:16:00) [2]в общем почему выдавалась ошибка я понял, но почемуто всё равно не прокатывает то что я хочу.
А нет какогонибудь более простого способа заменить все нужные цвета на другой
например красный,желтый, и зелёный на синий?
WondeRu (2005-03-18 11:32:00) [3]размерности массивов проверь... и вообще какую ошибку выдает?
Leeechhhh (2005-03-18 10:27:00) [4]на такую конструкцию при выполнение задачи выдаёт ошибку, хотя компилит нормально:
for x:=1 to image1.Picture.Width do
for y:=1 to image1.Picture.Height do
begin
if image1.Canvas.Pixels[x,y]=cls[x,y] then
begin
image1.Canvas.Pixels[x,y]:=cl;
end;
end;
cls[x,y]-массив с цветами
cl-цвет на который нужно заменить