Signatur
Beschreibung
imagegrabscreen() nimmt einen Screenshot des gesamten primären Bildschirms auf und gibt das Ergebnis als GD-Bildobjekt zurück. Diese Funktion ist ausschließlich unter Windows verfügbar und nutzt die Win32-API, um den aktuellen Bildschirminhalt zu erfassen.
Der zurückgegebene GdImage-Wert kann anschließend mit allen gängigen GD-Funktionen weiterverarbeitet werden – zum Beispiel mit imagepng(), imagejpeg() oder imagecrop(), um den Screenshot zu speichern oder zuzuschneiden.
Typische Anwendungsfälle sind automatisierte Tests, Monitoring-Lösungen oder Desktop-Anwendungen, die mit PHP-GTK oder ähnlichen Frameworks arbeiten und auf Bildschirminhalte zugreifen müssen.
Da die Funktion den gesamten physischen Bildschirminhalt erfasst, sollte sie nur in kontrollierten, serverseitigen oder Desktop-Umgebungen eingesetzt werden – niemals in einer öffentlich zugänglichen Webanwendung, da sonst vertrauliche Bildschirminhalte preisgegeben werden könnten.
Rückgabewert
GdImage-Objekt zurück, das den aktuellen Bildschirminhalt repräsentiert. Im Fehlerfall (z. B. auf Nicht-Windows-Systemen oder bei fehlenden Berechtigungen) wird false zurückgegeben.Beispiele
Screenshot des Bildschirms als PNG-Datei speichern
<?php
// Nur unter Windows verfügbar!
$screenshot = imagegrabscreen();
if ($screenshot === false) {
echo 'Screenshot konnte nicht erstellt werden.';
exit;
}
// Screenshot als PNG-Datei speichern
imagepng($screenshot, 'screenshot.png');
imagedestroy($screenshot);
echo 'Screenshot wurde als screenshot.png gespeichert.';
Bildschirm-Ausschnitt (Crop) erfassen und ausgeben
<?php
// Nur unter Windows verfügbar!
$screenshot = imagegrabscreen();
if ($screenshot === false) {
die('Screenshot fehlgeschlagen.');
}
// Ausschnitt: obere linke Ecke, 800x600 Pixel
$crop = imagecrop($screenshot, ['x' => 0, 'y' => 0, 'width' => 800, 'height' => 600]);
imagedestroy($screenshot);
if ($crop === false) {
die('Zuschneiden fehlgeschlagen.');
}
// Direkt als JPEG ausgeben
header('Content-Type: image/jpeg');
imagejpeg($crop, null, 90);
imagedestroy($crop);
// Wichtig · Fallstricke
Plattform-Einschränkung: imagegrabscreen() funktioniert ausschließlich unter Windows. Auf Linux- oder macOS-Systemen gibt die Funktion false zurück.
Sicherheitshinweis: Da die Funktion den vollständigen Bildschirminhalt erfasst, können sensible Daten (Passwörter, persönliche Informationen) in der Ausgabe enthalten sein. Die Funktion sollte niemals in einer Webanwendung eingesetzt werden, die von außen erreichbar ist.
Berechtigungen: Je nach Windows-Konfiguration und Benutzerkontext (z. B. bei Ausführung als Dienst) kann der Zugriff auf den Bildschirminhalt eingeschränkt sein. In solchen Fällen kann die Funktion ebenfalls false zurückgeben.
Ab PHP 8.0 wird ein GdImage-Objekt statt einer Ressource zurückgegeben. Code, der auf einen Ressourcentyp prüft, muss entsprechend angepasst werden.