Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Преобразование Цветов Dec -> Rgb (hex), Нахождение Диапазонов
Zeleax
сообщение 20.8.2011, 10:37
Сообщение #1


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



В связи с тем, что гугл с какого-то перепугу прикрывал мой сайт за нарушение условий использования (х.з. каких) то я на всякий случай выложил ссылки на свои файлы и на этот форум (файлы лежат на серверах iFolder)

избегаем диапазонов с помощью поиска статичных точек

Простой способ избежать необходимости использовать диапазон

Dec2RGB_v.2.2.2.zip (рекомендуется)
Таблица Excel для разложения десятичного цвета (DecColor) на RGB-каналы
Позволит быстро определить диапазон цветов, который необходимо задать для проверок (поиска).

Dec2RGBHex.zip
Импортирует текстовый файл с десятичными значениями цветов, затем экспортирует эти же значения, но уже в шестнадцатеричном формате RGB и отсортированные в порядке возрастания. Для работы требует установленную библиотеку .Net FrameWork 3.5

Для обработки вам необходимо будет создать файлик, в котором будут содержаться возможные цвета. Сделать его можно следующим скриптом:
Код
// Автор скрипта DarkMaster
wait 5s // Делаем паузу, чтобы развернуть нужное приложение и навести мышь на нужную точку.
set timer
set #n 1
get mouse_pos #x #y
while timer < 20000 // Собираем все цвета в выбранной точке на протяжении 20 секунд.
    get  color #colorForArr #x, #y
    set %colorArr [#n] #colorForArr // Напрямую массив использовать нельзя.
    set #n #n + 1
end_while
save_array %colorArr d:\color.txt
alarm // Подаем звуковой сигнал об окончании работы скрипта.
stop_script


****************

Таблица Excel более практична и удобна, так как в ней виден каждый RGB канал в десятичном виде (и сразу видно минимальное и максимальное значение каждого канала).

Сообщение отредактировал DarkMaster - 3.4.2014, 19:52


Прикрепленные файлы
Прикрепленный файл  Dec2RGB_v2.2.2.rar ( 5,62 килобайт ) Кол-во скачиваний: 2302


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ДЖОНИ
сообщение 3.9.2011, 19:01
Сообщение #2


*

Registred
Сообщений: 2
Регистрация: 3.9.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.950



Можно ли к этому скрипту добавить чтоб он ещё координату точки отмечал?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.9.2011, 19:27
Сообщение #3


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



всмысле? Там везде одна и та же точка будет. Координата снимается один раз перед началом сбора цветов.
Можно закончить скрипт вот так:
set %colorArr [#n 1 ] #x
set %colorArr [#n 2 ] #y
save_array %colorArr d:\color.txt
alarm // Подаем звуковой сигнал об окончании работы скрипта.

В конце текстового файла будут координаты.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 12.11.2011, 9:44
Сообщение #4


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Dec2RGB v.2.2
- исправил опечатку в формуле в одной ячейке (B4);
- добавил ячейки с отображением минимального и максимального цветов в десятичном виде (собранные из крайних значений отдельных каналов).


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
avgur
сообщение 30.8.2012, 14:34
Сообщение #5


***

Novice
Сообщений: 94
Регистрация: 15.8.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.926
Возраст: 25



Дайте пожалуйста формулы (желательно в пилото-понимаемом виде) для вычисления
R =
G =
B =
каналов десятичного цвета. Я пытался понять ее из таблицы екселя, но не шарю в синтаксисе написания экселевских формул.
Просто возникла необходимость в скрипте гет-колорить цвет пиксела (гет-колор в RGB то сразу не может), а потом файнд-колорить участок на наличие "похожих" пикселов (я планирую выставить диапазоны в RGB, добавив +-5 к значению каждого или какого-то одного канала).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 30.8.2012, 16:08
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



R=rgbdec-rgbDec/256*256
G=(rgbDec-rgbDec/256/256*256*256)/256
B=rgbDec/256/256

Отдельно хочу заметить, что в пилоте десятичный цвет в формате BGR, а не RGB.

Сообщение отредактировал DarkMaster - 30.8.2012, 16:46


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
avgur
сообщение 30.8.2012, 16:28
Сообщение #7


***

Novice
Сообщений: 94
Регистрация: 15.8.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.926
Возраст: 25



Спасибо.
Только G-канал не верно считает, остальные верно.

например для цвета 6956042
Код
set #rgbdec 6956042
set #R #rgbdec - #rgbdec / 256 * 256
set #G #rgbdec - #rgbdec / 256 / 256 * 256 * 256
set #B #rgbdec / 256 / 256
msg R#R G#G B#B
end_script

G должно быть равно 36, а пишет 9226
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 30.8.2012, 16:45
Сообщение #8


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



раздели на 256


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
avgur
сообщение 30.8.2012, 16:51
Сообщение #9


***

Novice
Сообщений: 94
Регистрация: 15.8.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.926
Возраст: 25



да спасибо, уже допер, посчитал методом тыка (IMG:style_emoticons/default/smile.gif)
set #G (#rgbdec - #rgbdec / 256 / 256 * 256 * 256) / 256
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Andrei777
сообщение 21.11.2012, 21:02
Сообщение #10


**

Neophyte
Сообщений: 25
Регистрация: 19.11.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.485
Возраст: 30



правильно ли я высчитал RGB?

set #rgbdec 16713215
set #R #rgbdec - #rgbdec / 256 * 256
set #G (#rgbdec - #rgbdec / 256 / 256 * 256 * 256) / 256
set #B #rgbdec / 256 / 256
msg R#R G#G B#B
end_script

R-255 G-5 B-255
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.11.2012, 21:16
Сообщение #11


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



да


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 21.11.2012, 21:27
Сообщение #12


**********

Группа: Администраторы
Наличность: 4
Пользователь №: 1.833



Цитата(Andrei777 @ 21.11.2012, 22:02) *

правильно ли я высчитал RGB?

set #rgbdec 16713215
set #R #rgbdec - #rgbdec / 256 * 256
set #G (#rgbdec - #rgbdec / 256 / 256 * 256 * 256) / 256
set #B #rgbdec / 256 / 256
msg R#R G#G B#B
end_script

R-255 G-5 B-255

Вы всегда можете проверить результаты своих вычислений в калькуляторе.

1. Открываем калькулятор, тыкаем "Вид" > "Программист" (в XP кажется назывался "Инженерный").
2. Вставляем нужное число.
3. Выбираем пункт "Hex", число будет преобразовано в Hex (16-ричная система счисления).

Видим: FF05FF (наиболее часто именно в таком формате цвет и записывается, например можно скормить в фотошоп).

Поочередно переводя "FF", "05", "FF" обратно в десятичный формат получите нужные цифры.


--------------------
Discord: tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Andrei777
сообщение 21.11.2012, 21:27
Сообщение #13


**

Neophyte
Сообщений: 25
Регистрация: 19.11.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.485
Возраст: 30



Используя описанный метот:

Добавил в 'findcolor' погрешность оттенка. Указывается в %. Слегка изменился синтаксис команды.
пример: есть погрешность 3%. точка имеет цвет 100 120 130, 255*3%=7, соответственно 100+/-7. При этом все цвета в пределах (93 113 123)-(107 127 137) будут считаться совпадением.

Задаю к своему R-255 G-5 B-255 погрешность в 3% получаю следующий диапозон, с учетом того, что 256 - это верхняя планка:

(248 0 248)-(256 12 256)

Добавляю в свой макрос, получаю:

:start

set $a 0
set $a findcolor (1807 79 1835 103 1 1 ((248 0 248)-(256 12 256)) %ResultArray 2 1)
if $a > 0
send 3 //(стоит скилл атаки)
else
send escape
end_if

goto start

Правильно ли?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.11.2012, 21:31
Сообщение #14


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Нет. Нарушен синтаксис.
Внутри скобок должно быть примерно так:
Примеры задания 'RequiredColor':

'84235' - точный цвет
'84235-86027' - диапазон цветов
'R(11)' - значение красного канала = 11, остальные не проверяются
'G(73-80)' - диапазон значений зеленого канала, остальные не проверяются
'R(11)+G(73-80)+B(1)' - заданы значения по всем каналам
'84235, R(0), R(11)+G(73-80)+B(1)' - комбинированное указание искомых цветов
http://uopilot.tati.pro/index.php?title=Findcolor


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Andrei777
сообщение 21.11.2012, 22:26
Сообщение #15


**

Neophyte
Сообщений: 25
Регистрация: 19.11.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.485
Возраст: 30



т.е. диапозон я посчитал правильно (248 0 248)-(256 12 256), но не правильно записал в макрос?

Я прочитал несколько раз, но понимание не пришло. Прошу расстолкуйте как найденный диапозон правильно записать в макрос, что бы прога поняла его. Именно на этом примере.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.11.2012, 22:37
Сообщение #16


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
т.е. диапозон я посчитал правильно (248 0 248)-(256 12 256), но не правильно записал в макрос?

Цитата
'G(73-80)' - диапазон значений зеленого канала, остальные не проверяются
'R(11)+G(73-80)+B(1)' - заданы значения по всем каналам


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Andrei777
сообщение 21.11.2012, 22:42
Сообщение #17


**

Neophyte
Сообщений: 25
Регистрация: 19.11.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.485
Возраст: 30



при всем уважении и понимании, что я в ваших глазах ламер и мало что понимаю.

Прошу написать: "вы посчитали диапозон правильно (или не правильно) в вашем случае нужно было посчитать так то, написать так то ..... ; потому что ..... ".
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.11.2012, 22:49
Сообщение #18


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



(R(248-256)+G(0-12)+B(248-256))
ну потому, что синтаксис такой... ну вот так оно задеатся... честно я не знаю как это объяснить. я приводил выше несколько примеров способов задания цвета, они могут комбинироваться. Только значения подставляй и все. Кроме как медитировать на строчки из вики я не могу вам ничего предложить и пояснить. Просто нечего пояснять... Надо понять то, что там написано, а понять за вас я не могу. Если что-то не ясно в примерах указывайте точное место, спрашивайте, а так я просто не понимаю, что вам объяснять.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Andrei777
сообщение 21.11.2012, 22:59
Сообщение #19


**

Neophyte
Сообщений: 25
Регистрация: 19.11.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.485
Возраст: 30



Такого пояснения достаточно.

Вставил в макрос, получилось:
:start

set $a 0
set $a findcolor (1164 73 1192 104 1 1 (R(248-256)+G(0-12)+B(248-256)) %ResultArray 2 1)
if $a > 0
send 3 //(стоит скилл атаки)
else
send escape
end_if

goto start

Все равно жмакает эскейп, т.е. цвет не находит. Что еще я мог не правильно посчитать или записать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.11.2012, 23:13
Сообщение #20


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



в 2.32 расширился синтаксис(на вике висит еще старый)
'set $a FindColor (StartX StartY EndX EndY ShiftX ShiftY (RequiredColor) ResultArray [type [count [deviation]]] [abs])'
теперь можно делать еще проще:
set $a findcolor (1164 73 1192 104 1 1 (16713215) %ResultArray 2 1 10)
10 - % оттенка.
Я вас послал сюда, чтобы вы собрали побольше оттенков точки скриптом из шапки и могли потом обработать эти данные скриптом или таблицами. Чтобы вы смогли узнать как вообще выглядит эта точка в ргб и как она изменяется, а не в слепую перебирали варианты. Но мысль ваша свернула не туда, а я чет только сейчас вспомнил с чего все началось.

Сообщение отредактировал DarkMaster - 21.11.2012, 23:14


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 16:38
Designed by Nickostyle