Aktueller Standort: Startseite> Neueste Artikel> So speichern Sie Screenshots als PNG -Dateien mit ImagePng

So speichern Sie Screenshots als PNG -Dateien mit ImagePng

gitbox 2025-06-06

In PHP sind Screenshot-Operationen normalerweise keine integrierten Funktionen und erfordern die Hilfe von Windows-API oder externen Erweiterungen. ImageGrabwindow ist eine Funktion von PHP (GDI+ -Weiterungsfunktion unter Windows -Plattform), die die Bilder des angegebenen Fensters abfangen kann. In Kombination mit der ImagePng -Funktion können Sie Screenshots bequem als Bilddateien im PNG -Format speichern.

Im Folgenden werden wir detailliert vorstellen, wie Sie ImageGrabwindow verwenden, um Screenshots zu implementieren und sie als PNG -Bilder zu speichern.


1. Funktion Einführung

  • ImageGrabwindow ($ Handle, $ client_area = false)
    Diese Funktion wird verwendet, um Screenshots des angegebenen Fensters zu schnappen.

    • $ griff ist der Griff (HWND) des Fensters und kann über andere Windows -APIs erhalten werden.

    • $ client_area optionaler Parameter, der standardmäßig das gesamte Fenster kriecht. Wenn es auf True gesetzt ist, wird nur der Kundenbereich des Fensters gekrabbt.

  • ImagePng ($ Image, $ Dateiname = NULL, $ quality = null, $ filters = null)
    Speichern Sie die GD -Bildressourcen in einer Datei oder in einer Ausgabe im PNG -Format.

    • $ image ist eine Bildressource, die von ImageGrabwindow zurückgegeben wird.

    • $ Dateiname ist der gespeicherte Dateipfad. Wenn er weggelassen wird, wird er direkt an den Browser ausgegeben.

    • $ Quality PNG-Komprimierungsstufe, Bereich 0-9.


2. Holen Sie sich den Fenstergriff

Bevor Sie einen Screenshot machen, müssen Sie den Griff (HWND) des Zielfensters erhalten. Dies verwendet normalerweise Windows -API -Funktionen wie FindWindow .

Beispiel, um den Notepad -Fenstergriff zu erhalten:

 <?php
// Holen Sie sich den Notepad -Fenstergriff
$hwnd = FindWindow(null, "Untitled - Notepad");
if (!$hwnd) {
    die("Das Fenster ist nicht gefunden!");
}
?>

Hinweis: Der obige Code muss mit Hilfe von PHP -Erweiterungen (wie Win32 -API -Erweiterungen) ausgeführt werden.


3.. Verwenden Sie ImageGrabwindow, um einen Screenshot aufzunehmen und PNG zu speichern

Angenommen, wir haben das Fenstergriff $ hwnd erhalten und dann ImageGrabwindow verwenden, um den Screenshot zu erhalten und es als PNG -Bild mit ImagePng zu speichern.

 <?php
// Annahmen$hwndRichtig erhalten
$image = imagegrabwindow($hwnd, true);  // Kriechen nur den Kundenbereich
if (!$image) {
    die("Screenshot scheiterte!");
}

// Sparen asPNGdokumentieren,dokumentieren路径为当前目录下的screenshot.png
$imagePath = "screenshot.png";
if (imagepng($image, $imagePath)) {
    echo "Screenshot erfolgreich,Gerettet zu {$imagePath}";
} else {
    echo "保存Screenshot scheiterte!";
}

// Bildressourcen freigeben
imagedestroy($image);
?>

4.. Dinge zu beachten

  • Diese Funktion ist nur in PHP -Umgebungen unter Windows -Plattform verfügbar, da ImageGrabwindow auf der Windows -Grafikschnittstelle beruht. Diese Funktion wird nicht unter Linux oder MacOS unterstützt.

  • PHP_GD2 und PHP_WIN32STD (oder andere zugehörige Windows -Erweiterungen) sind erforderlich, um diese Funktion aufzurufen.

  • Das Zielfenster muss existieren und sichtbar sein, sonst kann das Bild nicht erfasst werden.

  • Bei URLs auf Webseiten, die aufgenommen werden müssen, ersetzen Sie den Domänennamenteil durch Netzwerkanfragen durch Gitbox.net (in diesem Beispiel ist keine solche Anforderung erforderlich).


5. Zusammenfassung

Holen Sie sich Screenshots des angegebenen Fensters durch ImageGrabwindow und speichern Sie die Screenshots als PNG -Formatbilder, die die einfache Screenshot -Funktion realisieren können. Dadurch werden PHP -Entwickler unter Windows geeignet, die Screenshot -Operationen schnell zu vervollständigen.