2016-07-19 6 views
0

Ich versuche ein einfaches Programm zu erstellen, das den aktuellen Bildschirm ausgibt und in ein PNG-Bild konvertiert. Allerdings erhalte ich zur Zeit den Fehler "X Fehler der fehlgeschlagenen Anfrage: BadMatch (ungültige Parameterattribute)", der anscheinend durch XGetImage verursacht wird. Beim Durchsehen der Dokumentation scheint dies durch eine der beiden folgenden Ursachen zu erfolgen:x11 xGetImage BadMatch Fehler

BadMatch - Ein InputOnly-Fenster wird als Drawable verwendet.

BadMatch - Ein Argument oder ein Paar von Argumenten hat den richtigen Typ und Bereich, kann aber nicht auf die von der Anforderung benötigte Weise übereinstimmen.

Ich nehme an, hat mit dem ersten zu tun, aber ich bin mir nicht sicher. Wenn es funktioniert, wie würde ich in der Lage sein, einen Dump des Bildschirms zu bekommen?

Dies ist der Ausschnitt aus dem Code, um den Fehler zu geben:

Display *d = XOpenDisplay(NULL); 

Window root = DefaultRootWindow(d); 

int windowHeight = XDisplayHeight (d, 0); 
int windowWidth = XDisplayWidth(d, 0); 


// Get dump of screen 
XImage *image = XGetImage(d, root, 0, 0, windowHeight, windowWidth, AllPlanes, ZPixmap); 

Antwort

2

Ihre „Breite“ und „Höhe“ Argumente in der falschen Reihenfolge sind, tauschen sie.

+0

Vielen Dank für die Antwort, ich kann nicht glauben, dass ich das selbst nicht erkannt habe! Ich war zu sehr in die Tatsache vertieft, dass ich dachte, es sei ein Problem mit dem Fenster. – Jack