Author Topic: А если не найдено изображение?  (Read 6246 times)

0 Members and 1 Guest are viewing this topic.

thedim

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
А если не найдено изображение?
« on: October 22, 2013, 10:06:45 AM »
Здравствуйте Форумчане!

Если картинка найдена,тут все понятно:
Code: [Select]
getscreen
if_picture_in (0,0, $_xmax,$_ymax, "img.bmp")
   // действие...
end_if

А если не найдена, как выполнить действие? (тот же самый вопрос по пикселю). Заранее Спасибо!

Пробовал так: (не вышло)
Code: [Select]
getscreen
if_picture_in (0,0, $_xmax,$_ymax, "img.bmp")
else
   // действие...
end_if

Поковырялся и сделал, кому понадобиться функция, код ниже: (Спасибо Johnny за новый функционал!)
Code: [Select]
getscreen
scanpicture($img, 0,0, $_xmax,$_ymax, "img.bmp")
if($img>0)
   LOGWRITE("Изображение: найдено ", $img)
   while (arrsize($img) > 0)
      $y = arrpop($img)
      $x = arrpop($img)
      // Действие...
      waitms(1000)
   end_cyc
else
   LOGWRITE("Изображение: не найдено ", $img)
   // Действие...
   waitms(1000)
end_if
waitms(1000)
« Last Edit: October 22, 2013, 11:06:41 AM by thedim »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: А если не найдено изображение?
« Reply #1 on: October 22, 2013, 12:25:43 PM »
Пробовал так: (не вышло)

Что значит "не вышло"? У всех всё выходит. Значит картинка была найдена.

Поковырялся и сделал, кому понадобиться функция, код ниже: (Спасибо Johnny за новый функционал!)
Code: [Select]
getscreen
scanpicture($img, 0,0, $_xmax,$_ymax, "img.bmp")
if($img>0)
   LOGWRITE("Изображение: найдено ", $img)
   while (arrsize($img) > 0)
      $y = arrpop($img)
      $x = arrpop($img)
      // Действие...
      waitms(1000)
   end_cyc
else
   LOGWRITE("Изображение: не найдено ", $img)
   // Действие...
   waitms(1000)
end_if
waitms(1000)
Вот это неправильно
Code: (clickermann) [Select]
if($img>0)
что это? $img это массив. Если обращаться без индекса он всегда берёт первый элемент. В принципе ты и можешь сравнивать первый, но лучше так не делать чтобы не путаться.
Да, и координата может быть равна 0.

Тем более, что в программе есть шаблон!

опять же LOGWRITE("Изображение: не найдено ", $img)
Что выводим? Зачем нам ноль?


thedim

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: А если не найдено изображение?
« Reply #2 on: October 22, 2013, 01:38:24 PM »
$img всего лишь переменная, для выборки if и else. (как я ее понимаю) По крайней мере когда что то находит то ей присваивается значение, когда нет то она равна  нулю, а вывожу я ее для наглядности. Когда писал, что бы понимать во что она меняется, для создания условия...

Это всего лишь скелет для дальнейших действий. Ноль это просто для примера, когда 0 то изображение не найдено.

пожалуйста:

Code: [Select]
getscreen
scanpicture($img, 0,0, $_xmax,$_ymax, "img.bmp")
if($img>0)
   while (arrsize($img) > 0)
      $y = arrpop($img)
      $x = arrpop($img)
      lclick($_return1, $_return2) // если найдено то кликаем на изображение.
      waitms(1000)
   end_cyc
else
   lclick(10, 10) // если не найдено то жмем куда надо.
   waitms(1000)
end_if

waitms(1000)
« Last Edit: October 22, 2013, 01:57:03 PM by thedim »

thedim

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: А если не найдено изображение?
« Reply #3 on: October 22, 2013, 02:01:33 PM »
Что значит "не вышло"? У всех всё выходит. Значит картинка была найдена.

Что выходит то у всех? можно по конкретнее? Вот это что ли?:

getscreen
if_picture_in (0,0, $_xmax,$_ymax, "img.bmp")
else
   // действие...
end_if

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: А если не найдено изображение?
« Reply #4 on: October 22, 2013, 02:36:50 PM »
Что значит "не вышло"? У всех всё выходит. Значит картинка была найдена.

Что выходит то у всех? можно по конкретнее? Вот это что ли?:

getscreen
if_picture_in (0,0, $_xmax,$_ymax, "img.bmp")
else
   // действие...
end_if
Да, это.

...
scanpicture($img, 0,0, $_xmax,$_ymax, "img.bmp")
здесь $img массив, в который возвращаются координаты найденных изображений
If $img ... это то же самое, что и $img[0]
Она будет содержать 0 если не нашло ничего и если координата x первого найденного равна 0.
Проверять нужно
Code: (clickermann) [Select]
ARRSIZE($img)>0


Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: А если не найдено изображение?
« Reply #5 on: October 22, 2013, 04:57:25 PM »
сдается мне что у парня просто напросто не работает первый вариант потмоу что у условия пустое тело. я вообще не уверен что условия так работают лол.
вставь туда хоть вывод что ли в лог

thedim

  • Зашел в гости
  • *
  • Posts: 9
    • View Profile
Re: А если не найдено изображение?
« Reply #6 on: October 22, 2013, 06:46:51 PM »
очень странно, может я где то был не внимателен когда пробовал так:
getscreen
if_picture_in (0,0, $_xmax,$_ymax, "img.bmp")
else
   // действие...
end_if

сейчас же все работает, удивительно....
извиняюсь за то что ввел в заблуждение, возможно в этот момент был какой то глюк связанный хз с чем. Потому что по логике вещей я сразу так и пробовал, спасибо за подсказку мужики, чувствую себя как то тупо даже... :o

MIG29

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: А если не найдено изображение?
« Reply #7 on: October 26, 2013, 08:31:41 PM »
Мой первый скрипт содержал if pixel in пустое тело else действие  ;D
if_picture_in - зло