Что нового

Как определить из-за чего возникает ошибка в BmpSearch ?

barja

Новичок
Сообщения
2
Репутация
0
Код:
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
#include "BmpSearch.au3"

Func test()

	_GDIPlus_Startup()

	Local $hSource = _ScreenCapture_Capture()
	Local $hBmp = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\" &"0.bmp")
	Local $hFind = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp)
	Local $aCoords = _BmpSearch($hSource, $hFind, 10)

	If @error Then
	  Return 1
	Else
	  Return 0
	EndIf

EndFunc
test()

0.bmp = просто любая часть экрана, которая была вырезана в фотошопе.
Данный скрипт отлично работает на одном компьютере, но на другом возвращает @error = 1.
Операционные системы на двух компьютерах windows 10 pro x64
Версия AutoIt: 3.3.14.2
Предположил, что может что-то не так с 0.bmp и сделал его отдельно на втором компьютере, ситуация не изменилась.
На втором компьютере _BmpSearch всегда выдает ошибку.
Как мне определить в чем ошибка и как её устранить?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Масштабирование Windows включено?
Пример из комплекта BmpSearch работает?
 
Автор
B

barja

Новичок
Сообщения
2
Репутация
0
InnI сказал(а):
Масштабирование Windows включено?
Пример из комплекта BmpSearch работает?
Масштабирование отключено, пример BmpSearch работает.
Я предполагаю, что захват или поиск как-то искажает изображение, но я не знаю как это проверить.
Я сохранял изображение с помощью _ScreenCapture_SaveImage и проверял вручную по пикселям на различие с 0.bmp - различий не было.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Попробуйте двойную конвертацию, как здесь: Ответ #6. Пояснения в ответе #7.
 
Верх