Что нового

Скриншот области 100х50 под определенной картинкой на экране

cerber412

Новичок
Сообщения
42
Репутация
0
Версия AutoIt: 3.3.14.0

Описание:
Добрый вечер.
Помогите с решением проблемы.

Есть картинка 1.bmp
На ней, в определенном месте находится зеленый кружок.
Как при помощи BmpSearch - найти на экране (файл картинки открыт) зеленый кружок и сделать скриншот определенной области (ширина*высота = 100х50) - прямо под этим кружком ?

Образец рисунка для поиска - лежит в файле Образец.bmp
Примечания:
 

Вложения

  • BmpSearch.au3
    18.9 КБ · Просмотры: 5
  • 1.rar
    2.3 КБ · Просмотры: 5

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Код:
#include <ScreenCapture.au3>
#include "BmpSearch.au3"

_GDIPlus_Startup()

$hScreen = _ScreenCapture_Capture()
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hScreen)
$hSource = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)

$hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\образец.bmp")
If @error Then Exit ConsoleWrite("Ошибка открытия файла" & @CRLF)
$hFind = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
$aCoords = _BmpSearch($hSource, $hFind, 1)
If @error Then Exit ConsoleWrite("Не найдено" & @CRLF)

$iW = 100
$iH = 50
$iX = $aCoords[1][2]
$iY = $aCoords[1][3] + _GDIPlus_ImageGetHeight($hBmp)
_ScreenCapture_Capture(@ScriptDir & "\scr.bmp", $iX, $iY, $iX + $iW, $iY + $iH, False)

_GDIPlus_BitmapDispose($hBmp)
_GDIPlus_BitmapDispose($hImage)
_WinAPI_DeleteObject($hScreen)
_WinAPI_DeleteObject($hSource)
_WinAPI_DeleteObject($hFind)
_GDIPlus_Shutdown()

ShellExecute("scr.bmp")
 
Верх