|
|
|
Поиск изображений в перекрытом окне |
|
|
Gwyn |
29.11.2024, 1:14
|
Neophyte
Сообщений: 16
Регистрация: 10.4.2023 Группа: Пользователи Наличность: 46
Пользователь №: 20.512
|
Поиск изображений в перекрытом окне не работает. Код --lua local handle = findwindow("World of Warcraft") local startX, startY, endX, endY = 108, 149, 111, 151 -- координаты поиска local path = [["\GWYN\Image\enemy.bmp"]] -- путь к картинке if handle then workwindow(handle[1][1]) -- Устанавливаем найденное окно как рабочее local arr, a = findimage (startX, startY, endX, endY, {path}, workwindow, 90, 1, 30) -- поиск картинки if arr then -- если найдена log ("Изображение найдено в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2]) move (arr[1][1], arr[1][2], handle[1][1]) -- навести курсор на картинку else log ("Изображение не найдено") end else log("Окно не найдено") end Картинку видит, но если её перекрыть любым приложением, то уже нет. Пробовал Код local arr, a = findimage (startX, startY, endX, endY, {path}, workwindow(), 90, 1, 30) Код local arr, a = findimage (startX, startY, endX, endY, {path}, handle, 90, 1, 30) Не работает, изображений не видит даже не в перекрытом окне. Код 1:09:49 0 (autosaved_0.txt, 0): Изображение не найдено
|
|
|
|
Madeus |
29.11.2024, 1:40
|
Journeyman
Сообщений: 300
Регистрация: 19.11.2019 Группа: Пользователи Наличность: 9684
Пользователь №: 19.451
Возраст: 32
|
Код local arr, a = findimage (startX, startY, endX, endY, {path}, handle[1][1], 90, 1, 30) -- поиск картинки
|
|
|
|
Gwyn |
29.11.2024, 2:31
|
Neophyte
Сообщений: 16
Регистрация: 10.4.2023 Группа: Пользователи Наличность: 46
Пользователь №: 20.512
|
Да, так тоже пробовал. Тоже самое что и с workwindow() handle Код local arr, a = findimage (startX, startY, endX, endY, {path}, handle[1][1], 90, 1, 30)
1:09:49 0 (autosaved_0.txt, 0): Изображение не найдено
Работает только если так, но с перекрытием не дружит. Код local arr, a = findimage (startX, startY, endX, endY, {path}, workwindow, 90, 1, 30)
2:29:36 25 (autosaved_25.txt, 0): Изображение найдено в координатах X= 108 Y= 149
|
|
|
|
Gwyn |
29.11.2024, 7:35
|
Neophyte
Сообщений: 16
Регистрация: 10.4.2023 Группа: Пользователи Наличность: 46
Пользователь №: 20.512
|
Код --lua local handle = findwindow("World of Warcraft") local startX, startY, endX, endY = 108, 149, 111, 151 local imagePath = [[\GWYN\Image\enemy.bmp]]
if handle then workwindow(handle[1][1]) local arr, a = findimage(startX, startY, endX, endY, {imagePath}, workwindow(), 90, 1, 30) local address, width, height, length = getimage(100, 100, 1000, 1000, handle[1][1])
if address then log("Address: " .. address) log("Width: " .. width) log("Height: " .. height) log("Length: " .. length) else log("Не удалось получить изображение") end
local saveAddress = getimage(0, 0, 320, 256, handle[1][1]) if saveAddress then saveimage(saveAddress, [[C:\Users\User\Desktop\New Pilot\picture.bmp]]) else log("Не удалось сохранить изображение.") end
-- Лог результата поиска if arr then log("Изображение найдено в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2]) else log("Изображение не найдено") end else log("Окно не найдено") end
8:09:50 28 (autosaved_28.txt, 0): Address: 10476112 8:09:50 28 (autosaved_28.txt, 0): Width: 220 8:09:50 28 (autosaved_28.txt, 0): Height: 156 8:09:50 28 (autosaved_28.txt, 0): Length: 660 8:09:50 28 (autosaved_28.txt, 0): Изображение не найдено
getimage(0, 0, 320, 256, handle[1][1]) - в игре DX12 или getimage(0, 0, 320, 256, workwindow()) (IMG: https://i.imgur.com/FE8XBPu.png) getimage(0, 0, 320, 256, workwindow) - в игре DX12 (перекрытия) (IMG: https://i.imgur.com/zKe0Udc.png) getimage(0, 0, 320, 256, handle[1][1]) - в игре DX11 (окно не перекрывает) (IMG: https://i.imgur.com/DhHpDRQ.png) Очень нужно чтобы в DX12 тоже работало.
|
|
|
|
DarkMaster |
29.11.2024, 11:39
|
Модератор UOPilot
Сообщений: 9.632
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28953
Пользователь №: 11.279
|
Цитата А можно для тупых поподробнее?) А я помню?) Я писал это 2.5 года назад. Ну ченить типа: Код local clr = require"color"
local img = clr.getimage(50, 50, 100, 100, workwindow())
local result = findimage(10, 10, 20, 20, {"my_image"}, img.address, 80, 1)
Отдельно хочу предупредить по координатам. Поскольку в findimage прилетает только кусок вырезанный из 50, 50 до 100, 10 и НЕ прилетает откуда он был вырезан, то по факту поиск будет происходить в данном примере в 60, 60, 70, 70. Так же там есть saveimage свой - можно потестить, что getimage получает. Будет ли стандартный saveimage работать с изображением из полученным из моего модуля - не знаю.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd: Kov____ Писать в личку.
|
|
|
|
Gwyn |
29.11.2024, 12:43
|
Neophyte
Сообщений: 16
Регистрация: 10.4.2023 Группа: Пользователи Наличность: 46
Пользователь №: 20.512
|
Код --lua local clr = require "color"
-- Ищем окно World of Warcraft local handle = findwindow("World of Warcraft")
if handle then workwindow(handle[1][1])
-- Захватываем изображение из области экрана local img = clr.getimage(0, 0, 320, 256, handle[1][1])
if img and img.address then log("Захваченный адрес изображения: " .. tostring(img.address)) local savePath = "C:\\Users\\User\\Desktop\\New Pilot\\picture.bmp" log("Путь для сохранения: " .. savePath) local width = img.width or 320 local height = img.height or 256 log("Ширина: " .. tostring(width) .. ", Высота: " .. tostring(height)) local result = clr.saveimage(savePath, {address = img.address, width = width, height = height})
if result then log("Изображение успешно сохранено в: " .. savePath) else log("Не удалось сохранить изображение.") end else log("Не удалось захватить изображение.") end else log("Окно World of Warcraft не найдено.") end
Видимо тоже не видит. (IMG: https://i.imgur.com/Stk8hBk.png) В DX11 вот что видит. (IMG: https://i.imgur.com/lXLpfNn.png)
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|