2016-04-16 15 views
0

Ich habe versucht, die Screenshot-Funktion von pyautogui zu verwenden, und wenn ich einen Screenshot mache, fängt es nur die obere linke Ecke des Bildschirms. Selbst wenn ich manuell eine größere Region für den Screenshot einstelle, macht es den Rest nur schwarz.Pyautogui - Screenshot deckt den gesamten Bildschirm nicht

Beispiel:

example of image being created

Was könnte ich tun, um dieses Problem beheben?

Code, der das Bild gemacht:

import pyautogui 
import time 
import sys 

im = pyautogui.screenshot('board.png',region=(0,0, 2000, 1000)) 
+0

Sie Code sehen OK für mich. Die Größe der Region sieht seltsam aus, da das keine übliche Bildschirmgröße ist, also ist das vielleicht das Problem. Versuchen Sie, das Argument 'region' vollständig zu lassen - der Standardwert ist der Vollbildschirm - und sehen Sie, was passiert (oder setzen Sie die korrekte Bildschirmauflösung ein). – martineau

+0

@martineau Wenn ich das Region-Argument weglasse, zeigt der Screenshot nur den Bildschirm ohne den schwarzen Bereich. Ich vermute, dass es etwas mit meinem Bildschirm zu tun hat, der hohe dpi ist, aber ich weiß nicht, wie ich dieses Problem lösen würde. Wenn es überhaupt hilft, scheint es, dass die meisten x, y-Pixel-Koordinaten pyautogui verwendet sind 2,5 mal weniger als meine tatsächlichen Bildschirmkoordinaten, aber ich versuche nur, einen Screenshot von meinem gesamten Bildschirm zu bekommen. Wenn ich die richtigen Abmessungen meines Bildschirms gebe, wird der größte Teil meines Bildschirms schwarz. –

+0

Könnte eine Einschränkung oder ein Fehler in PyAutoGUI (oder Pillow, die es intern verwendet) sein. Von der aktuellen Versionsnummer (0.9.33) der Vorgängerversion sieht es so aus, als wäre es noch in Entwicklung. Könnte auch ein Problem mit dem Treiber Ihrer Grafikkarte sein - stellen Sie sicher, dass Sie die neueste Version installiert haben. Wenn alles auf dem neuesten Stand ist, würde ich einen Fehlerbericht (mit PyAutoGUI) einreichen. – martineau

Antwort