Преобразование изображения 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() создал изображение для сравнения без всякого форматирования.

Другие вопросы по тегам