Преобразование изображения PIL в растровое изображение с автопией?(И обратно)
Недавно я начал работать с PIL вместе с AutoPy для автоматизации некоторых задач. Одной из основных функций, для которых нужна AutoPy, является ее удивительно быстрая (хотя и глючная, но есть исправления для этого - сборка и установка из исходного кода могут раздражать, и если вы получаете ошибку Unable to find vcvarsall.bat
Просто погугли это).
Но только сейчас я столкнулся с проблемой, для которой не могу найти решение. PIL и AutoPy используют принципиально разные форматы для своих скриншотов. Для AutoPy я не мог заставить его работать с несколькими экранами, но для PIL я легко мог. Теперь мне нужно конвертировать эти изображения в формат, который принимает AutoPy - и это в разумные сроки.
Теоретически возможное решение:
def test():
Img = Image.open("example.png")
Img.save("test.png")
Img2.open("test.png")
Судя по моим испытаниям, это займет примерно 0,5 секунды. Намного больше, чем 0,1 секунды.
1 ответ
Я покопался в документации, чтобы найти инструмент для преобразования растровых изображений.
pil_im = Image.open("test.png")
pil_im = pil_im.convert(mode ="1")
#this is to prevent a value error in the tobitmap function
pil_im = pil_im.tobitmap(im)
У меня была похожая проблема ранее, когда скриншот pyautogui не считался таким же, как недавно открытый png. pil_im.copy() создал изображение для сравнения без всякого форматирования.