Find-Image
Поиск картинки
Параметры #1
-Image Изображение, загруженное в память
-Screen Искать изображение на всем экране
-Path Путь к файлу, в котором будет произведен поиск изображения
-Handle Указатель окна, в котором будет произведен поиск изображения
-Visible Поиск в неперекрытом окне
-Picture Картинка, загруженная в память, в которой будет произведен поиск изображения
-Accuracy Точность совпадения (80 = 80% accuracy )
-Deviation Отклонение в цвете (20 = 20% color deviation)
-Count Количество изображений, которое будет найдено
-V2 Альтернативный алгоритм поиска.
-Attempts По скольким пикселям искать изображение. Если 0, то искать по всем.
-BgColor Цвет фона. Пиксели указанного цвета не участвуют в поиске.
1
- по умолчанию
0
- искать всеWake up, Neo, select all
$img = Get-Image "D:\image.bmp"
Find-Image $img -Screen -Accuracy 95
Параметры #2
-Image Изображение, загруженное в память
-Screen / -Path / -Handle / -Picture
-StartPos Координаты начала области поиска
-EndPos Координаты конца области поиска
-Accuracy Точность совпадения (80 = 80% accuracy )
-Deviation Отклонение в цвете (20 = 20% color deviation)
-Count Количество изображений, которое будет найдено
1
- по умолчанию
0
- искать всеWake up, Neo, select all
Find-Image $img -Path "C:\Picture.bmp" -StartPos 50, 50 -EndPos 250, 250
Параметры #3
-Image Изображение, загруженное в память
-Screen / -Path / -Handle / -Picture
-StartPos Координаты начала области поиска
-Size Размеры области поиска
-Accuracy Точность совпадения (80 = 80% accuracy )
-Deviation Отклонение в цвете (20 = 20% color deviation)
-Count Количество изображений, которое будет найдено
1
- по умолчанию
0
- искать всеWake up, Neo, select all
Find-Image $img -Handle 1567893 -StartPos 50, 50 -Size 200, 200
Параметры #4
-Image Изображение, загруженное в память
-Screen / -Path / -Handle / -Picture
-Rect Объект
Rectangle
, содержащий информацию об области поиска-Accuracy Точность совпадения (80 = 80% accuracy )
-Deviation Отклонение в цвете (20 = 20% color deviation)
-Count Количество изображений, которое будет найдено
1
- по умолчанию
0
- искать всеWake up, Neo, select all
$pic = Get-Image "D:\picture.bmp"
$rect = [Drawing.Rectangle]::new(50, 50, 200, 200)
Find-Image $img -Picture $pic -Rect $rect
Примеры
-
Поиск изображения на всём экране.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp" # загрузить картинку
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$coord = Find-Image $img -Screen -Accuracy 95 # поиск картинки
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Move-Cursor $coord.location[0]
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Поиск изображения на экране в указанных координатах.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp"
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
# левый верхний угол области поиска 50, 200
# правый нижний угол области поиска 200, 500
$coord = Find-Image $img -Screen -StartPos 50, 200 -EndPos 200, 500
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Move-Cursor $coord.location[0]
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Поиск картинки на экране с меньшей точностью (Accuracy) и отклонением в цвете (Deviation).
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp"
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
# точность поиска 95%, отклонение в цвете 10%
$coord = Find-Image $img -Screen -Accuracy 95 -Deviation 10
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Move-Cursor $coord.location[0]
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Поиск на экране нескольких одинаковых изображений.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp"
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$coord = Find-Image $img -Screen -Accuracy 95 -Count 0 -Deviation 10
if($coord){
foreach($item in $coord){ # цикл для всех найденных изображений
Write-Host "Координаты картинки: $($item.location)" -ForegroundColor Green
Move-Cursor $item.location # навести курсор на картинку
Start-Sleep -m 500 # пауза 0.5 секунды
}
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Поиск картинки в указанном окне. Окно не должно быть перекрыто другими окнами.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\attack.bmp"
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$window = Find-Window -Title "Warspear Online" # поиск окна с именем Warspear Online
if(!$window){
Write-Host "Окно не найдено" -ForegroundColor Red
Stop-Script
}
Set-ForegroundWindow $window.handle[0] # переместить окно на передний план
Start-Sleep 1 # пауза 1 секунду
$coord = Find-Image $img -Handle $window.handle[0] -Visible -Accuracy 95 -Deviation 10
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Move-Cursor $coord.location[0] -Handle $window.handle[0] # переместить курсор
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Поиск картинки в указанном окне. Окно может быть перекрыто (но, не свёрнуто) другими окнами.
Отличие от примера 5 в том что не указан параметр -Visible.Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\attack.bmp"
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$window = Find-Window -Title "Warspear Online" # поиск окна с именем Warspear Online
if(!$window){
Write-Host "Окно не найдено" -ForegroundColor Red
Stop-Script
}
$coord = Find-Image $img -Handle $window.handle[0] -Accuracy 95 -Deviation 10
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Click-Mouse $coord.location[0] -Handle $window.handle[0] -Event # клик на картинку, курсор при этом не задействован
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
} -
Загрузить картинки в массив и искать их в цикле.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp", "C:\папка\song.bmp", "C:\dance.bmp" # загрузить картинки в массив
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
for($i=0; $i -lt $img.Count; $i++){ # цикл для поиска всех картинок из массива
$coord = Find-Image $img[$i] -Screen -Accuracy 95 -Deviation 10
if($coord){
Write-Host "Координаты картинки: $($coord.location[0])" -ForegroundColor Green
Move-Cursor $coord.location[0] # навести курсор на картинку
Start-Sleep -m 500 # пауза 0.5 секунды
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
}
} -
Загрузить картинки в массив искать их на сделанном скрине.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp", "C:\папка\song.bmp", "C:\dance.bmp" # загрузить картинки в массив
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$screen = Get-Image -Screen # сделать скрин всего экрана
for($i=0; $i -lt $img.Count; $i++){ # цикл для поиска всех картинок из массива
$coord = Find-Image $img[$i] -Picture $screen -Accuracy 95 -Deviation 10 # искать картинки на сделанном скрине
if($coord){
Write-Host "Координаты картинки $i : $($coord.location[0])" -ForegroundColor Green
}
else{
Write-Host "Картинка не найдена" -ForegroundColor Red
}
}
$screen.Dispose() # удалить скрин -
Ожидание появления картинки
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp" # загрузить картинку
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
# ждать пока картинка не будет найдена
Do {
$coord = Find-Image $img -Screen -Accuracy 95 # поиск картинки на экране
Start-Sleep -m 10
}
Until($coord)
Write-Host ("Координаты: X = {0}, Y = {1}" -f $coord.location.X[0], $coord.location.Y[0]) -ForegroundColor Green
Move-Cursor $coord.location.X[0], $coord.location.Y[0] # переместить курсор на найденную картинку
Move-Cursor $coord.location[0] # или так -
Ожидание картинки указанное количество времени.
Wake up, Neo, select all
Clear-Host
try{
$img = Get-Image -Path "C:\image.bmp" # загрузить картинку
}
catch{
Write-Host "Картинка не загрузилась" -ForegroundColor Red
Stop-Script
}
$time = (Get-DAte).AddMilliseconds(3500) # текущее время + 3.5 секунды
while((Get-Date) -lt $time){ # цикл ожидания картинки 3.5 секунды
$coord = Find-Image $img -Screen -Accuracy 95 -Deviation 10 # поиск картинки на экране
if ($coord){ # если картинка нашлась
break # выход из цикла
}
sleep -m 10
}
if ((Get-Date) -ge $time){ # проверка были ли найдена картинка за указанное время
Write-Host "Время вышло, картинка не найдена" -ForegroundColor Red
}
else{
Write-Host "Координаты картинки: $($coord.location)" -ForegroundColor Green
}