Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
1

Определить цвет пикселя

25.11.2012, 00:22. Просмотров 2570. Ответов 11
Метки нет (Все метки)

Привет всем! Есть такой вопрос: есть переменная char wr; так вот есть ли такая функция в языке С, которая бы определяла цвет пикселя с координатами (x;y) на мониторе и, допустим если цвет пикселя черный, присваивала переменной wr значение, ну например, wr==1. Возможно ли это записать? И если возможно то покажите пожалуйста как!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 00:22
Ответы с готовыми решениями:

Цвет в цветовой схеме RGB – определить “средний цвет”
2. Описать структуры для хранения описания объектов и функции выполняющие вычисления для массива...

Определить цвет пикселя в 3д
Здравствуйте, недавно я подумал, что если можно получить цвет пикселя в 2д, тои в 3д тоже можно. Ну...

Определить цвет пикселя на экране
Добрый день. Есть такая проблема, что функция GetPixel определяет цвет и записыват его как 1-9...

Как определить цвет пикселя?
Нужно определить цвет пикселя на рисунке . Как это сделать? В паскале была функция GetColor , а в...

Определить цвет пикселя по координатам
Определить цвета каждого из пикселей изображения,по координатам X и Y шагом в 5 пикселей по...

11
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 12:16 2
В языке Си такой функции нет. Если приложение для ОС Windows, то в WinAPI есть функция GetPixel ( http://msdn.microsoft.com/ru-ru/libr...=vs.85%29.aspx ).
1
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
25.11.2012, 12:49  [ТС] 3
Цитата Сообщение от lazybiz Посмотреть сообщение
В языке Си такой функции нет. Если приложение для ОС Windows, то в WinAPI есть функция GetPixel ( http://msdn.microsoft.com/ru-ru/libr...=vs.85%29.aspx ).
Спасибо, только возник такой вопрос что такое HDC и откуда его взять?
0
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 13:15 4
Это контекст устройства, его можно либо создать, либо получить при помощи определенных функций.
GetDC( NULL ) возвращает контекст всего экрана.
1
25.11.2012, 13:15
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
25.11.2012, 13:24  [ТС] 5
Цитата Сообщение от lazybiz Посмотреть сообщение
Это контекст устройства, его можно либо создать, либо получить при помощи определенных функций.
GetDC( NULL ) возвращает контекст всего экрана.
Нет все равно не получается собрать все это вместе Не пойму как это записать все. Вот по различным примерам попробовал какая то фигня получилась
C++ (Qt)
1
2
3
4
5
6
7
8
#include <stdio.h>
#include <conio.h>
#include <windows.h>
main()
{
GetDC( NULL );         
COLORREF pixel_color = DС.GetPixel(1000,1000);
}
Покажите на примере пожалуйста если несложно.
0
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 13:28 6
Пфф.. Что за компилятор?
C
1
2
3
4
5
6
BYTE r, g, b;
COLORREF color;
color = GetPixel( GetDC( NULL ), 100, 100 );
r = GetRValue( color );
g = GetGValue( color );
b = GetBValue( color );
1
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
25.11.2012, 13:35  [ТС] 7
Dev C++

Добавлено через 5 минут
Цитата Сообщение от lazybiz Посмотреть сообщение
C
1
2
3
r = GetRValue( color );
g = GetGValue( color );
b = GetBValue( color );
А вот это что такое?
0
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 13:52 8
http://ru.wikipedia.org/wiki/RGB
1
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
25.11.2012, 14:15  [ТС] 9
Цитата Сообщение от lazybiz Посмотреть сообщение
C
1
2
3
4
5
6
BYTE r, g, b;
COLORREF color;
color = GetPixel( GetDC( NULL ), x, y );
r = GetRValue( color );
g = GetGValue( color );
b = GetBValue( color );
Так ладно, эта функция будет определять цвет в точке (x,y), но есть еще переменная char wr, как присвоить ей значение исходя из полученного цвета?
0
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 14:26 10
C
1
2
char wr = 0;
if ( GetPixel( GetDC( NULL ), x, y ) == 0 ) wr = 1; // если цвет черный, тогда wr = 1
А вообще тебе неплохо бы разобраться как формируется цвет на экране монитора в 24/32-битном режиме, да и основы языка Си немного подучить.
0
Novink
0 / 0 / 0
Регистрация: 25.11.2012
Сообщений: 9
25.11.2012, 17:09  [ТС] 11
Цитата Сообщение от lazybiz Посмотреть сообщение
C
1
2
char wr = 0;
if ( GetPixel( GetDC( NULL ), x, y ) == 0 ) wr = 1; // если цвет черный, тогда wr = 1
А вообще тебе неплохо бы разобраться как формируется цвет на экране монитора в 24/32-битном режиме, да и основы языка Си немного подучить.
Ну основами языка Си я занимаюсь Спасибо большое за помощь.

Добавлено через 2 часа 37 минут

Извините, но снова вынужден к вам обратится, написал такую короткую программку. Её суть проверить пиксель с координатами x y и если он черного цвета то вывести на экран один текст, если не черного цвета другой:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <conio.h>
#include <windows.h>
main()
{
printf("Hai");
getchar();
if ( GetPixel( GetDC( NULL ), 10000, 10000 ) == 0 ) {
printf("URAAAAAAA!!!");
} 
else printf("lol");
getchar();
}
При компиляции программа не запускается, красным (как это обычно бывает при ошибках) нечего не подчеркивает, но выдает в журнале компиляции 2 ошибки, вот скрин: http://fotki.yandex.ru/users/truniger2012/view/623415/?page=0
0
castaway
Эксперт С++
4941 / 3046 / 455
Регистрация: 10.11.2010
Сообщений: 11,144
Записей в блоге: 10
Завершенные тесты: 1
25.11.2012, 17:15 12
Тебе надо подключить библиотеку gdi32.a . Как это делается в Dev-C++ я не в курсе...
1
25.11.2012, 17:15
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2012, 17:15

Определить цвет пикселя на экране по координатам
Есть задача: Каждые полсекунды нужно определять цвет с экрана по координатам. Не в форме, а именно...

Определить цвет пикселя на экране по координатам
Есть задача: Каждые полсекунды нужно определять цвет с экрана по координатам. Не в форме, а именно...

Как определить цвет пикселя в координате?
Как определить цвет пикселя в координате на рабочем столе?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru