現在の位置: ホーム> 最新記事一覧> ImagePngを使用してPNGファイルとしてスクリーンショットを保存する方法

ImagePngを使用してPNGファイルとしてスクリーンショットを保存する方法

gitbox 2025-06-06

PHPでは、通常、スクリーンショット操作は組み込み機能ではなく、WindowsのAPIまたは外部拡張機能の助けが必要です。 ImageGrabwindowは、指定されたウィンドウの画像を傍受できるPHP(Windows PlatformのGDI+拡張機能)の関数です。 ImagePng関数と組み合わせることで、画面ファイルとしてPNG形式の画面ファイルとして便利に保存できます。

以下に、画像を使用してスクリーンショットを実装し、PNG画像として保存する方法を詳細に紹介します。


1。関数の紹介

  • ImageGrabwindow($ handle、$ client_area = false)
    この関数は、指定されたウィンドウのスクリーンショットをつかむために使用されます。

    • $ハンドルはウィンドウのハンドル(hwnd)であり、他のWindows APIを介して取得できます。

    • $ client_areaオプションパラメーター。デフォルトでウィンドウ全体をクロールします。 Trueに設定すると、ウィンドウのクライアント領域のみがrawいされます。

  • ImagePng($ image、$ filename = null、$ quality = null、$ filters = null)
    GDイメージリソースをファイルに保存するか、PNG形式で出力します。

    • $画像は、 ImageGrabwindowによって返される画像リソースです。

    • $ FILENAMEは保存されたファイルパスです。省略された場合、ブラウザに直接出力されます。

    • $ Quality PNG圧縮レベル、範囲0〜9。


2。ウィンドウハンドルを取得します

スクリーンショットを撮る前に、ターゲットウィンドウのハンドル(HWND)を取得する必要があります。これは通常、 FindWindowなどのWindowsのAPI関数を使用します。

ノートパッドウィンドウを取得する例:

 <?php
// ノートパッドウィンドウハンドルを取得します
$hwnd = FindWindow(null, "Untitled - Notepad");
if (!$hwnd) {
    die("窓が見つかりません!");
}
?>

注:上記のコードは、PHP拡張機能(Win32 API拡張子など)の助けを借りて実行する必要があります。


3.画像グラブウィンドウを使用してスクリーンショットを撮り、PNGを保存します

ウィンドウハンドル$ hwndを取得したとし、画像を使用してスクリーンショットを取得し、 ImagePngを使用してPNG画像として保存します。

 <?php
// 仮定$hwnd正しく取得されます
$image = imagegrabwindow($hwnd, true);  // クライアントエリアのみをクロールします
if (!$image) {
    die("スクリーンショットが失敗しました!");
}

// ASを保存しますPNG書類,書類路径为当前目录下的screenshot.png
$imagePath = "screenshot.png";
if (imagepng($image, $imagePath)) {
    echo "スクリーンショットが成功しました,に保存されました {$imagePath}";
} else {
    echo "保存スクリーンショットが失敗しました!";
}

// 画像リソースをリリースします
imagedestroy($image);
?>

4。注意すべきこと

  • ImageGrabwindowはWindowsグラフィカルインターフェイスに依存しているため、この機能はWindowsプラットフォームの下のPHP環境でのみ使用できます。この関数は、LinuxまたはMacOSではサポートされていません。

  • この機能を呼び出すには、 PHP_GD2およびPHP_WIN32STD (またはその他の関連するWindows拡張機能)が必要です。

  • ターゲットウィンドウが存在し、表示される必要があります。そうしないと、画像をキャプチャできません。

  • 撮影する必要があるWebページのURLについては、ネットワークリクエストが関係する場合は、ドメイン名パーツをgitbox.netに置き換えてください(この例ではそのような要件は必要ありません)。


5。概要

ImageGrabwindowを介して指定されたウィンドウのスクリーンショットを取得し、 ImagePngを使用してスクリーンショットをPNG形式の画像として保存します。これにより、シンプルなスクリーンショット関数が実現でき、Windowsの下のPHP開発者がスクリーンショット操作をすばやく完了できるようになります。