Jak zrobić zrzut ekranu z pythonem, jeśli jest podłączony do wielu monitorów?Zrzut ekranu Pythona 2+ monitorów (Windows)
Próbowałem:
import sys
from PyQt4.QtGui import QPixmap, QApplication
app = QApplication(sys.argv)
QPixmap.grabWindow(QApplication.desktop().winId()).save('test.png', 'png')
import ImageGrab
im = ImageGrab.grab()
im.save('test.png', 'PNG')
Obie opcje zapewniają zrzut ekranu, tylko monitor główny
Jeśli używam winapi:
hWnd = win32gui.FindWindow(None, win_name)
dc = win32gui.GetWindowDC(hWnd)
i_colour = int(win32gui.GetPixel(dc,int(x),int(y)))
rgb = ((i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff))
uzyskać obraz z okna na sekundę monitor. Ale będzie bardzo powolny.
Jeśli naciśnie klawisz "printscreen" w schowku będzie zwykły zrzut ekranu, ze wszystkimi monitorami. Czy istnieje opcja uzyskania pełnego ekranu w Pythonie?
Jak nie zapisać pliku, możesz użyć tej mapy bitowej w PIL? Image.open() – Echeg