Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: mjkl on September 03, 2013, 02:11:08 PM

Title: Одинаковые неодинаковые цвета
Post by: mjkl on September 03, 2013, 02:11:08 PM
Разные видеокарты производят на монитор свою комбинацию смеси RGB. В результате чего два одинаковых цвета для человека, на мониторах разных комьютеров, оказываются не совсем одинаковыми для програмного обработчика. Поэтому % работы любого скрипта с привязкой по конкретному цвету, даже с цветокорекцией, на разных компьютерах очень низкий.
Вариант решения. Если пиксель, коодинаты которого на разныхкомпьютерах одинаковые, на глаз - зеленого/салатового цвета. При разбивке на RGB преобладающее значение будет иметь зеленый цвет, от чего пляшем дальше:
Code: (clickermann) [Select]
GETSCREEN
$p=pxl(x,y)
$cR=colorR($p)
$cG=colorG($p)
$cB=colorB($p)
IF(($cG>$cR)&($cG>$cB))
// Код
END_IF
Интересно знать - может есть проще процедура?
Title: Re: Одинаковые неодинаковые цвета
Post by: Vint on September 03, 2013, 02:56:54 PM
Разные видеокарты производят на монитор свою комбинацию смеси RGB. В результате чего два одинаковых цвета для человека, на мониторах разных комьютеров, оказываются не совсем одинаковыми для програмного обработчика. Поэтому % работы любого скрипта с привязкой по конкретному цвету, даже с цветокорекцией, на разных компьютерах очень низкий.
Вариант решения. Если пиксель, коодинаты которого на разныхкомпьютерах одинаковые, на глаз - зеленого/салатового цвета. При разбивке на RGB преобладающее значение будет иметь зеленый цвет, от чего пляшем дальше:
Code: (clickermann) [Select]
GETSCREEN
$p=pxl(x,y)
$cR=colorR($p)
$cG=colorG($p)
$cB=colorB($p)
IF(($cG>$cR)&($cG>$cB))
// Код
END_IF
Интересно знать - может есть проще процедура?

Ты зря тратишь время. Нас абсолютно не волнует, что видеокарта подаёт на монитор. Кликер и все другие программы тоже не волнует.
Поэтому вывод - всё находится прекрасно. Должна совпадать только битность цветопередачи. Но сейчас думаю таких нет, кто сидит на 16 битах или даже 8.
Title: Re: Одинаковые неодинаковые цвета
Post by: mjkl on September 03, 2013, 03:21:01 PM
Но сейчас думаю таких нет, кто сидит на 16 битах
Твоя ошибка.
Кроме того возможны случаи, когда пиксель может менять оттенок, и в этом случае скрип скажет йок.
И вообще зачем отвечать, если нет ответа по сути?
Title: Re: Одинаковые неодинаковые цвета
Post by: Vint on September 03, 2013, 04:42:24 PM
Как это нет ответа. Твоё выражение "Разные видеокарты производят на монитор свою комбинацию смеси RGB" конечно верно... формально, но не имеет отношения к обсуждаемому вопросу, АБСОЛЮТНО.
То как видеокарта выводит цвет R50 G45 B180 на монитор используя профиль монитора и т.д и. т.п. нас не волнуют.
Любая программа, на любом компьютере где включена цветопередача 32 бита покажет что цвет R50 G45 B180. в независимости от того как видят глаза. Будь человек хоть дальтоником.

Если ты столкнулся с различным распознаванием цвета, здесь несколько вариантов:
1. Пиксел выводится с полупрозрачностью и на результирующий цвет влияет цвет фона.
2. При использовании антиалиазинга - всё тоже самое для границ объектов к которым применяется сглаживание.
3. Программа (например флэш) при каждом проходе, может по разному рендерить изображение пересчитывая изначальную элемент/картинку в другой размер и/или при выводе в другое место.
Может ещё есть, но со всеми описанными встречался и в разной степени успеха боролся.
Title: Re: Одинаковые неодинаковые цвета
Post by: mjkl on September 03, 2013, 04:58:38 PM
Вопрос заключается в последней строчке после кода, первого сообщения.
Другими словами:
проанализировать какой цвет RGB спектра преобладает
если преобладает цвет который задан в условии ранее
продолжить скрипт
если нет другое действие

Title: Re: Одинаковые неодинаковые цвета
Post by: stivus on September 05, 2013, 08:55:16 AM
Тогда,наверное,надо не пиксель-ибо пиксель он и в африке пиксель,и Vint тут прав,-а картинку,с % подобия...