56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
1

Цвет пикселя!

18.01.2014, 21:31. Показов 7271. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ищу в Image все пикселя белового цвета и задаю им другой цвет, но какой бы я цвет не задал (clBlue, clRed, clLime .. и т.п) все ровно устанавливается серый цвет!
Вот Код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Timer1Timer(Sender: TObject);
 var
   i,j : integer;
begin
slider.Left := slider.Left + 1;
 i := Slider.Left-(line.Left)-1;
 With Line do
Begin
Canvas.Pen.Color:=clGreen;
   for j:= 1 to 10 do
 if  Canvas.Pixels[i,j]=clWhite then Canvas.Pixels[i,j]:=RGB((0), (255), (10));
end;
end;
И Вот так тоже самое
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Timer1Timer(Sender: TObject);
 var
   i,j : integer;
begin
slider.Left := slider.Left + 1;
 i := Slider.Left-(line.Left)-1;
 With Line do
Begin
   for j:= 1 to 10 do
 if  Canvas.Pixels[i,j]=clWhite then Canvas.Pixels[i,j]:=clGreen;
end;
end;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2014, 21:31
Ответы с готовыми решениями:

Цвет пикселя
Ребята, можно ли сохранить цвет пикселя, на которую ты нажал левой кнопкой мыши, в переменную типа...

Цвет пикселя scanline
Здравствуйте, начал изучать делфи, взял стандартную задачку, найти на картинке нужный пиксель, по...

Получить цвет пикселя с альфаканалом
Здравствуйте. Как получить цвет указанного пикселя с альфаканалом из файла png? Так...

Перемещени курсора на цвет пикселя
мне нужно когда я нажимаю Mouse1(НЕ ТОЛЬКО В ПРОГРАММЕ,а И НА РОБОЧЕМ СТОЛЕ ,к примеру), то курсор...

13
841 / 736 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
18.01.2014, 22:52 2
Собрал этот код- нормально закрашивает:
В имаге должен bmp файл лежать, так как на сколько мне извесно делфи с jpg форматом не умеет попиксельно работать.
Delphi
1
2
3
4
  for i := 0 to Image1.Height do
    for j := 0 to Image1.Width do
      if Image1.Canvas.Pixels[j, i] = clWhite then
        Image1.Canvas.Pixels[j, i] := clRed;
0
angstrom
18.01.2014, 23:01 3
NIKOLAYY, здесь немного подправь
Delphi
1
2
3
for i := 0 to Image1.Height - 1 do // !
    for j := 0 to Image1.Width - 1 do // !
...
841 / 736 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
18.01.2014, 23:07 4
Ищу в Image все пикселя белового цвета и задаю
Во еще че, я у тебя кстати в коде вобще Image не вижу...
Ты раскрасить просто форму пытался...
Но не советую ее канву попиксельно ее обрабатывать, это грозит зависанием приложения.

Добавлено через 2 минуты
Цитата Сообщение от angstrom Посмотреть сообщение
NIKOLAYY, здесь немного подправь
Да не вроде работает и так, у меня же там после цикла 1 оператор стоит?...
0
angstrom
18.01.2014, 23:12 5
Рано или поздно нарвёшься на выход за пределы массива.
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
19.01.2014, 12:31  [ТС] 6
Delphi
1
2
With Line do
Canvas.Pen.Color:=clGreen;
это то же самое что
Delphi
1
Line.Canvas.Pen.Color:=clGreen
0
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
19.01.2014, 12:36  [ТС] 7
Проект.rar
Вот проект
0
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
19.01.2014, 12:37  [ТС] 8
Тема еще в силе!
0
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
19.01.2014, 12:56 9
Так у твоих рисунков формат пикселей - 8 бит.
Сделай так:
Delphi
1
2
3
4
5
procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered := true;
line.Picture.Bitmap.PixelFormat := pf24bit; // <---
end;
1
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
19.01.2014, 13:00  [ТС] 10
Все работает, а можно объяснить почему именно 24bit установили ?

Добавлено через 52 секунды
если Картинка 8 бит
0
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
19.01.2014, 13:08 11
Пиксель формата 24bit хранит в себе информацию о цвете и его можно перекрашивать, присваивая нужные значения цвета.
А пиксель 8bit хранит в себе индекс цвета из палитры.
1
56 / 56 / 29
Регистрация: 01.01.2014
Сообщений: 214
19.01.2014, 13:43  [ТС] 12
Все понял, Большое спасибо !

Добавлено через 25 секунд
Тема закрыта!
0
841 / 736 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
19.01.2014, 13:45 13
PixelFormat я так понял- это формат хранения информации о цвете точки.
По справке их 9 штук pf8bit, pf24bit, pfDevice и тд
Тогда я непонял чем отличаются они друг от друга и почему их так много?
0
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,972
19.01.2014, 13:51 14
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
чем отличаются они друг от друга
Размером пикселей и, следовательно, количеством цветов (оттенков), которое может содержать рисунок, из них состоящий.
1
19.01.2014, 13:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 13:51
Помогаю со студенческими работами здесь

Цвет пикселя под курсором
procedure TForm1.tMR1Timer(Sender: TObject); var p: TPoint; DC: HDC; begin ...

Как определить цвет пикселя по курсором?
Подскажите, задача такая: Я перемещаю курсор в определенные координаты, мне нужно определить цвет...

Как определить цвет пикселя на jpg картинке?
может кто знает как определить цвет пикселя...

Можно ли получить цвет пикселя картинки, не выводя ее?
Здравствуйте. Подскажите, можно ли получить цвет определенного пикселя картинки, не выводя ее на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru