Author Topic: Покраска.  (Read 2496 times)

0 Members and 1 Guest are viewing this topic.

ezbreez

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Покраска.
« on: April 23, 2015, 08:54:02 PM »
Доброго времени суток. По примеру из закрепленной темы на форуме "написал" скрипт.

Code: [Select]
getscreen
if_pixel_in(589, 191, 1044, 651, 0,1,2,3,4,5,6,7,8,9,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,33,34,35,36,37,38,39,40)
lclick($_return1, $_return2)
end_if

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

ezbreez

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Покраска.
« Reply #1 on: April 23, 2015, 09:15:35 PM »
Добавлю, что необходимо закрашивать не линии, а скорее а области черного цвета. Еще допускается, что не весь черный цвет будет закрашен, а хотя бы основная его часть.

ezbreez

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Покраска.
« Reply #2 on: April 27, 2015, 11:19:29 PM »
Хелп! Неужели никто не знает? Нужен хотя бы код, который проверял соседние пиксели на черный цвет, а только затем кликал.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Покраска.
« Reply #3 on: April 28, 2015, 07:55:10 AM »
...который проверял соседние пиксели на черный цвет, а только затем кликал.

Код:
Проверяем пикселы.
Итог: пикселы проверены.  :-) :-)


Проверял на что? Что есть чёрный или нет? Или их больше/меньше определённого количества? Когда кликать?


ezbreez

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Покраска.
« Reply #4 on: April 28, 2015, 11:38:01 AM »
Проблема в том, что скрипт ищет черный пиксель слева направо и одно и то же место закрашивает по нескольку раз.
Quote
Или их больше/меньше определённого количества?

Это в идеале. Например, если черных пикселей в кругу пера, скажем, 30 штук тогда кликать. У меня была идея проверять на черный цвет помимо начального пикселя (1), еще пиксели помеченные крестом.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Покраска.
« Reply #5 on: April 28, 2015, 11:55:48 AM »
Ну так и проверяй
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(589, 191, 1044, 651, 0,1,2,3,4,5,6,7,8,9,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,33,34,35,36,37,38,39,40)
   $X = $_return1
   $Y = $_return2
     
   IF((PXL($X-1,$Y) < 41) & (PXL($X-2,$Y) < 41) & (PXL($X+1,$Y) < 41) & (PXL($X+2,$Y) < 41) & (PXL($X,$Y-1) < 41) & (PXL($X,$Y-2) < 41) & (PXL($X,$Y+1) < 41) & (PXL($X,$Y+2) < 41))
      lclick($X, $Y)
   END_IF
END_IF


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Покраска.
« Reply #6 on: April 28, 2015, 04:52:21 PM »
Не совсем по теме, но всёже.
Quote
скрипт закрашивает линии черного цвета или близкого к черному
судя по коду, скрипт ищет цвета от 0 до 40. но это всеголиш черные оттенки красного цвета . то есть в виде ргб цвет 40 будет выглядеть (40,0,0), но если добавлять оттенки зеленого или синего, визуально цвет будет тоже черным. тоесть все цвета от ргб(0,0,0) до ргб(40,40,40) должны подходить под описание "черный или близко к черному", а таких вариантов  41х41=1681 цветов. врядли выйдет вписать тебе в скрипт столько цветов.

 я бы предложил использовать цветокоррекцию. к примеру при COLORMODE(5) все цвета от ргб(0,0,0) до ргб(31,31,31) будут равны цвету 2039583. COLORMODE(6) уравнивает цвета уже от ргб(0,0,0) до ргб(63,63,63), а ргб(63,63,63) это уже несовсем черный. поэтому тебе бы больше подошел COLORMODE(5)

 вобщем, поиск черного цвета или близкого к черному было бы правильнее определить так:
Code: (clickermann) [Select]
getscreen
COLORMODE(5, 589, 191, 1044, 651)
if_pixel_in(589, 191, 1044, 651, 2039583)
lclick($_return1, $_return2)
end_if




немного ошибся с цифрами. цвета от ргб(0,0,0) до ргб(40,40,40) - количество вариантов 41х41х41=  68921 черных цветов.
« Last Edit: April 28, 2015, 10:13:44 PM by dramster »