Форум программистов, компьютерный форум CyberForum.ru

C++ Поиск пикселя заданного цвета и замена другим. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Sveta_Blond
 Аватар для Sveta_Blond
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 4
15.03.2012, 13:49     C++ Поиск пикселя заданного цвета и замена другим. #1
Ребята, помогите пожалуйста с решением задачи.
Кучу документации перекопала - никак не могу найти решение. Нужно разработать программу, которая: в заданной области находит точки зеленого цвета, используя режим чтения 0, и заменяет их на красные, используя режим записи 2.

ЗАрание всем спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
15.03.2012, 16:02     C++ Поиск пикселя заданного цвета и замена другим. #2
если я не ошибаюсь, при программировании ega\vga режим чтения 0 стоит по умолчанию.
насчет такого чтения Вам сюда Поиск координат пикселя в окне.. но там медленный вариант через апи.и нужна реализация "перекрашивания" режимом записи 2
Sveta_Blond
 Аватар для Sveta_Blond
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 4
15.03.2012, 17:18  [ТС]     C++ Поиск пикселя заданного цвета и замена другим. #3
Цитата Сообщение от Hemull Посмотреть сообщение
если я не ошибаюсь, при программировании ega\vga режим чтения 0 стоит по умолчанию.
насчет такого чтения Вам сюда Поиск координат пикселя в окне.. но там медленный вариант через апи.и нужна реализация "перекрашивания" режимом записи 2
А где можно почитать про метод перекрашивания с режимом записи 2 и вообще про эти видео режимы ?
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
15.03.2012, 17:37     C++ Поиск пикселя заданного цвета и замена другим. #4
http://www.codenet.ru/progr/video/egavga/

Добавлено через 4 минуты
нужно сначала узнать, в чем фишка режима записи 2. если просто можно записать значение цвета, то как вариант через SetPixel()

Добавлено через 4 минуты
РЕЖИМ ЗАПИСИ 2

В этом режиме данные от центрального процессора поступают
через регистр цвета. Поэтому нужно предварительно сформировать
регистр маски битов, а затем по соответствующему адресу видеопамяти
передать код нужного цвета.
{ Вычерчивание горизонтальной пунктирной линии в центре экрана
случайным цветом, начиная с белого.
После нажатия любой клавиши программа завершает свою работу }

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    uses Graph, Crt;
    Var ................
                x,y             : Word;
     
                b,bb            : Byte;
    Const
                Col: Byte = White;
    Procedure InitGr;
            ..............
    Begin
            InitGr;
            y := succ(GetMaxY) div 2;     {центр экрана} {выбираем режим
    чтения/записи}
            Port[$3ce] := 5;
            Port[$3cf] := 2;        {режим записи 2}
    {выбираем режим установки маски}
     
            Port[$3ce] := 8;
            Port[$3cf] := $CC;      {по 2 бита байта по очереди - пунктир}
    repeat               {вывод линии}
                    for x:= 0 to GetMaxX div 8 do      {по байтам}
                    begin
                            _{ обязательна очистка видеопамяти }
     
                            bb := Mem [$A000:y*80+x];
                            Mem[$A000:y*80+x] := Col;  {задание цвета}
                    end;
                    Delay(1000);
                    Col:=Random(16);
            until KeyPressed;
            CloseGraph;
    End.
Yandex
Объявления
15.03.2012, 17:37     C++ Поиск пикселя заданного цвета и замена другим.
Ответ Создать тему
Опции темы

Текущее время: 14:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru