PHPで画面をキャプチャするにはどうすればいいですか?
Apache のサービス プロパティで、[ログイン] タブの [サービスとデスクトップの交換を許可する] を選択するだけです。
?
<?php $browser = new COM("InternetExplorer.Application"); $handle = $browser->HWND; $browser->Visible = true; $browser->Width = 500; $browser->Height = 500; $browser->Navigate("http://www.un.org"); /* Still working? */ while ($browser->Busy) { com_message_pump(4000); } $im = imagegrabwindow($handle, 0); $browser->Quit(); imagepng($im, "iesnap.png"); ?>
?このコードを実行すると、サーバー上に IE ウィンドウがポップアップし、指定された Web サイトが自動的に開きます。スクリーンショットを撮った後、ウィンドウは自動的に閉じます。これは非常に愚かなことです。
?
?
?
?
?
Alexa にログインすると、Alexa がクエリ対象の Web サイトのホームページのスクリーンショットを表示することが常に表示されます。このスクリーンショットはどのようにして実現されるのでしょうか。
ページの内容を見ると、Amazon のサービス プログラム を呼び出していることがわかりました。
得られた。
http://ast.amazonaws.com/Xino/?Action=Redirect&Service=AlexaSiteThumbnail&Url=baidu.com&
AWSAccessKeyId=1FVZ0JNEJDA5TK457CR2&Signature=tz4xyqDNcSf8A1v%2BpDo4todvM9c%3D&
サイズ=Small&タイムスタンプ=2008-03-04T06%3A04%3A47.422Z&
DefaultImage=http%3A%2F%2Fclient.alexa.com%2Fcommon%2Fimages%2Fnoimages.gif
この効果を自分の Web サイトで実現したい場合は、Amazon で ID を申請し、そのような呼び出しインターフェイスを取得してそれを実現できます。
しかし、これは探究心とどのように調和するのでしょうか?そこで、いろいろ調べた結果、Webサイトのトップページのスクリーンショットを自力で実現する次の方法を見つけました。
ウェブサイトのトップページのサムネイルの作成を実現します。
手順:
1. ページ クローラー ツールを起動して、選択した Web サイトのホームページをクロールします。
2. キャプチャしたページのスクリーンショットを サーバー に保存します
3. 表示する必要があるサイズに応じて、キャプチャしたページのスクリーンショットを処理します。
4. 結果をユーザーに表示します
。
結論から言うと、重要なのは安定したクローリングツールを使用することです。インターネットで検索したところ、次のツールを見つけました。
Windows 環境では、ページのスクリーンショットをキャプチャするためにこのツールを検討できます:
IECapt.exe
Linux 環境では、ページのスクリーンショットをキャプチャするためにこのツールを検討できます:
HTML2画像
クローラーを取得したら、任意のサーバー言語を使用できるようになります。
このクローラーを呼び出すプログラムを作成し、クロール結果をユーザーに返します。
以下は、IECapt.exe と PHP を組み合わせて Web サイトのスクリーンショットをキャプチャする例です。
Windows/Apache2.2/Php5.2.5 での実行に合格しました。
参考:
1.http://www.zubrag.com/scripts/website-thumbnail-generator.php
2.http://www.guangmingsoft.net/htmlsnapshot/html2image.htm
公式URL: http://www.guangmingsoft.net/htmlsnapshot/html2image.htm
Linux
kernel-2.2.14 以降: 必要なライブラリと関連ソフトウェアをインストールします
yum install -y glibc gtk+ fontconfig??cairo libpixman pango pango-devel
html2imageをダウンロード
wget http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz
tar xvzf html2image.i386.tar.gz
CD html2image
LD_LIBRARY_PATH パスを設定します
エクスポート LD_LIBRARY_PATH=./
mkdir /usr/X11R6/lib
ln - s /usr/share/X11 /usr/X11R6/lib/X11
Xvfb
を実行します
./Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg & エクスポート DISPLAY=:1
画像の生成
./html2image www.google.com
a.jpg
無視されたエラー:
セキュリティ ポリシー ファイル /usr/X11R6/lib/X11/xserver/SecurityPolicy
を開くときにエラーが発生しました
フォント パス要素 /usr/X11R6/lib/X11/fonts/TTF/ を初期化できませんでした。リストから削除しました!
フォント パス要素 /usr/X11R6/lib/X11/fonts/Speedo/ を初期化できませんでした。リストから削除しました!
フォント パス要素 /usr/X11R6/lib/X11/fonts/Type1/ を初期化できませんでした。リストから削除されました!
フォント パス要素 /usr/X11R6/lib/X11/fonts/CID/ を初期化できませんでした。リストから削除しました!
1024x768 フォーマットの容量を生成
jpg 871K
gif 412万
png 1.13M