- ベストアンサー
URLを指定して、サイトの画像キャプチャを、デスク
URLを指定して、サイトの画像キャプチャを、デスクトップかサーバーの指定ディレクトリへ保存したいのですが、どうすればよいでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 Windows環境であれば以下のような感じで実装は可能です。 (実際に作ってみましたが、簡単に出来ました) http://dip.picolix.jp/disp5.html というようなキャプチャソフトをPHPよりexecで起動します。 すると、指定ディレクトリにキャプチャ画像を生成することが出来ます。 こんな方法もあるようです。 http://codezine.jp/article/detail/1272 No.3さんも言っているように直接画面をキャプチャすることが出来ないのでブラウザまたはその類のソフトを経由する必要があります。
その他の回答 (3)
- superside0
- ベストアンサー率64% (461/711)
> スクリプトで、URLのキャプチャ画像は取得できないのでしょうか? Webの仕組みがどうなっているか考えるとわかると思いますが Webコンテンツとして提供されているのは、HTMLやCSSやそれに埋め込まれている画像ファイルで あって、そのページを実際に表示したときのイメージではありません。 HTMLやCSSを解釈して、ページとして組み立てているのは、クライアント側のブラウザの仕事です。 なので、元のコンテンツのWebサーバーから 表示イメージ(ブラウザで表示をのキャプチャした画像ファイル)をいきなり取り出すことはできません。 よって、どこかで(自分のクライアント環境か、それの代行サービスか)でブラウザでの表示イメージを 生成して それを画像ファイル化する必要があります。 ただし、要件が画像キャプチャでなく、コンテンツサーバーが提供する生データ (HTMLやCSSやそれに埋めこまれた画像ファイル)を単に取り出して保存したい というだけなら、話はそんなにややこしくないです。
お礼
回答ありがとうございましたー
- superside0
- ベストアンサー率64% (461/711)
HTMLやサイト上の画像ファイルをダウンロードするということではなくて、 ブラウザで表示した状態を、画像ファイルにして、ローカルに保存するということでしたら、 普通は、 サーバー側で動くPHPでなく、クライアント側で行う必要があるのではと。 (VBAでIEオブジェクトをコールして表示してから、それのbitmap画像をjpg変換して ローカルに保存。。ってことになるのでしょうから、簡単という訳ではないと思いますが) ただ、各種ブラウザでの見た目をエミュレーションしてくれるサービスのサイトが いくつかあったと思いますので、その画像を利用して、簡単にするというのは可能かもしれません。 (各種OSや各種ブラウザによっての見た目を表示してくれるサービス) http://gigazine.net/news/20081021_cross_browser_testing/ サービス提供側が、そのような使い方をしても、約款的に問題ないかの確認は必要ですが・・・ たとえば PHPから そのサービスに表示したいURLをfile_get_contents()にでも渡して 戻ってきたコンテンツから画像ファイルのパスを解析し、 さらに その画像ファイルのURLをfile_get_contents()でとりだして サーバーに保存する ということなら、PHPだけでも可能だと思います。 さらに、それをデスクトップにダウンロードするHTMLをPHPで作るというのも 可能だと思いますが、HTMLでやると、ダウンロード作業自体は1件ごとの 手動になりますので、ftpで一括でやったほうが簡単かも。 アイデアだけで 試したことはないので、あしからずです。
補足
回答ありがとうございました。 >戻ってきたコンテンツから画像ファイルのパスを解析し この画像自体は、「各種ブラウザでの見た目をエミュレーションしてくれるサービス」を利用しないと取得できないのでしょうか? スクリプトで、URLのキャプチャ画像は取得できないのでしょうか?
- LancerVII
- ベストアンサー率51% (1060/2054)
こんにちは。 PHPで実現したいとうことでしょうか? サーバの指定ディレクトリへの保存は各種サービスのAPIを使用すれば比較的簡単に実現できると思います。 デスクトップへの保存は自分で保存する等のアクションが無いと難しいと思います。 (勝手にローカルへ保存できない) 各種サービスはこちらを参考にしてみてください http://zapanet.info/blog/item/955
補足
回答ありがとうございました。 APIを利用せずに実装するにはどうすればよいでしょうか? どういう風にスクリプトでキャプチャを撮るか知りたいです。
お礼
回答ありがとうございました。 大変参考になりました。 ブログ更新楽しみにしてますー