Dim $Pix[50][50]
For $y = 0 to 49 step 1
For $x = 0 to 49 step 1
$Pix[$x][$y] = PixelGetColor($x, $y)
next
next
For $y = 0 to 49 step 1
For $x = 0 to 49 step 1
MsgBox(0,0,"Цвет пикселя по координатам x:"&$x&" $y:"&$y&" = 0x"&hex($Pix[$x][$y], 6))
next
next
Dim $Pix[50][50], $Pix_Memory[50][50]
While 1
For $y = 0 To 49
For $x = 0 To 49
$Pix[$x][$y] = PixelGetColor($x, $y)
If $Pix[$x][$y] <> $Pix_Memory[$x][$y] Then
If $Pix_Memory[$x][$y] = True Then
MsgBox(0, "", "Цвет пикселя $Pix[" & $x & "][" & $y &"] изменен.")
EndIf
$Pix_Memory[$x][$y] = $Pix[$x][$y]
EndIf
Next
Next
Sleep(100)
WEnd
Dim $PixXY[4][2], $Pix[4], $Pix_Memory[4], $Diapozon
$PixXY[0][0] = 23 ;Координаты первого пикселя по оси Х (устанавливаете в ручную).
$PixXY[0][1] = 15 ;Координаты первого пикселя по оси Y.
$PixXY[1][0] = 35 ;Координаты второго пикселя по оси Х (устанавливаете в ручную).
$PixXY[1][1] = 20 ;По оси Y и т.д.
$PixXY[2][0] = 45
$PixXY[2][1] = 30
$PixXY[3][0] = 55
$PixXY[3][1] = 40
$Diapozon = 1000 ;Величина погрешности, в обе стороны от начального значения, на которую код не будет реагировать (с этим параметром поиграйтесь).
;Выход из скрипта через комбинацию клавиш ALT + Ё.
HotKeySet("!ё", "_Exit")
HotKeySet("!`", "_Exit")
While 1
For $i = 0 To 3
$Pix[$i] = PixelGetColor($PixXY[$i][0], $PixXY[$i][1])
If $Pix_Memory[$i] = False Then
$Pix_Memory[$i] = $Pix[$i]
ElseIf $Pix_Memory[$i] - $Diapozon > $Pix[$i] Or $Pix_Memory[$i] + $Diapozon < $Pix[$i] Then
$Pix_Memory[$i] = $Pix[$i] ;Запоминание изменения - если не нужно, то эту строчку закомментировать.
MouseMove($PixXY[$i][0], $PixXY[$i][1])
EndIf
Next
Sleep(100)
WEnd
Func _Exit()
Exit
EndFunc
Спасибо, как раз то что нужно, но проблемма в том что я работаю с видео, и даже если ничего не происходит, то цвета меняются, как мне задать, оттенки, а то он реагирует без повода.Заранее спасибо.
Да это помогло, но скажите как можно скрипт более лучше сделать что бы он отслеживал изменение пикселей не всех (а если изменили своё положение больше 50 %)/
скажите как можно скрипт более лучше сделать
Скажите а как можно разукрасить нужный мне пиксель в нужный мне цвет.
Скажите, а как сделать поиск не определённого цвета,а ещё его оттенки
Я выводил картинку в отдельный экран вот например вариант перевода некоторых картинок в серенький вариант вариант - требует библиотеку GDIP.au3- поищите на форуме эта библиотека естьArei сказал(а):Скажите а как можно разукрасить нужный мне пиксель в нужный мне цвет.
#include <GDIPlus.au3>
#include <GDIP.au3>
#Include <ScreenCapture.au3>
#include <GUIConstantsEx.au3>
func show_picture_in_grey($lx,$ly,$rx,$ry)
Local $hGUI, $hBMP, $hBitmap, $hGraphic
$hBMP = _ScreenCapture_Capture("",$lx,$ly,$rx,$ry,False)
_GDIPlus_Startup ()
; Draw bitmap to GUI
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP ($hBMP)
;======================
;$hGUI = GUICreate("GDI+", $rx-$lx, $ry-$ly,$lx, $ly)
$hGUI = GUICreate("GDI+", $rx-$lx, $ry-$ly,-1, -1)
GUISetState()
; Initialize GDI+ library
for $x=0 to $rx-$lx
for $y=0 to $ry-$ly
$iColor=BitAND(_GDIPlus_BitmapGetPixel($hBitmap,$x,$y),0x00FFFFFF)
$GreyColor= brightness($iColor)
$GreyColor=$GreyColor+BitShift($GreyColor,-8)+BitShift($GreyColor,-16)
;~ if ($GreyColor>128)and($iColor<>0xE81B22)and($iColor<>0xFF333A) Then
;~ $GreyColor=0x00FFFFFF
;~ Else
;~ $GreyColor=0
;~ EndIf
_GDIPlus_BitmapSetPixel($hBitmap,$x, $y, $GreyColor)
Next
Next
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hGUI)
_GDIPlus_GraphicsDrawImage ($hGraphic, $hBitmap, 0, 0)
; Clean up resources
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_BitmapDispose ($hBitmap)
_WinAPI_DeleteObject ($hBMP)
; Shut down GDI+ library
_GDIPlus_ShutDown ()
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
;======================
EndFunc
func brightness( $iColor )
local $Red=BitShift(BitAND(Int($iColor),0x00FF0000),16)
local $Green=BitShift(BitAND(Int($iColor),0x0000FF00),8)
local $Blue=BitAND(Int($iColor),0x000000FF)
return Int(Sqrt(($Red*$Red+$Green*$Green+$Blue*$Blue)/3))
EndFunc
Arei сказал(а):но мне надо как раз в том же окне рисовать, или над ним
Добавлено:Сообщение автоматически объединено:
Покажите пример с рисованием с помощью винайпи.Заранее спасибо.