投稿の詳細: ウェブサイトのスクリーンショットを取る方法

ウェブサイトのスクリーンショットを取る方法

10093 回閲覧 このエントリーをはてなブックマークする この記事のブックマークユーザー 永続的リンク2008/02/25 05:28:49 カテゴリ: サーバー関係, ウェブ関係, PHP
スポンサード リンク

YARETOKO「ヤレトコ」スクリーンショット


ウェブサイトのサムネイル画像の生成サービスといえば、
SimpleAPIとかMozShot(上記スクリーンショットはMozShot)とかが有名だと思いますが、以前より自分で作ってみたかった。


ってことで少し作ってみた。
その時いろいろ調べたことをまとめておこうと思います。

[続き:]

Windows+PHP


PHPとGDを使ってスクリーンキャプチャをする方法
PHP+Windowsでスクリーンショットやサムネイル作成

で紹介されています。

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
?> 


Windows版のスクリーンショットは上記でとれるとのこと。
楽ちん!でも、Windows版だけかぁ・・・。

Linuxでの実現は?


ここから本題って感じですが、結論から言っちゃいます。
linuxでの実現は出来ます。が、サービスとして提供する場合は、サーバー負荷が大きいので大変であるということ。


というのも、スクリーンキャプチャを取るために毎回ウェブブラウザの起動・終了を繰り返す必要があるため。
参考にしたサイトでは、リクエストはある程度ためてから、一気に画像生成するのが良いのではと書いてあります。

Linux(CentOS4.5)での流れ

スクリーンショットを取る流れは以下の通り。

1.Xvfb(仮想フレームバッファ)起動
2.firefox(ブラウザ)起動
3.firefox(ブラウザ)でURLにアクセス
4.ImageMagickでスクリーンショットを取る


先に必要なものをインストールします。

# yum grouplist
# yum groupinfo "X Window System"
# yum upgrade xorg-x11-xfs
# yum upgrade xorg-x11
# yum upgrade xorg-x11-devel
# yum upgrade xorg-x11-libs
# yum groupupdate "X Window System"
# yum upgrade xorg-x11-libs
# yum install xorg-x11-Xvfb
# yum install firefox
# yum install ImageMagick


Firefoxのプロファイルの設定

# firefox -createprofile webshot
# mkdir /tmp/webshot/

Xvfb(仮想Xサーバー)起動

# /usr/X11R6/bin/Xvfb :1 -screen 0 1024x768x24 > /dev/null &

firefox起動

# export DISPLAY=:1.0
# firefox -display :1 -width 800 -height 1024 -P "webshot" &

firefox上でサイト表示

# firefox -display :1 -remote "openurl(http://mick.blog16.jp/)"

ImageMagickでスクリーンショットを画像に保存

# /usr/bin/import -display :1 -window root test.gif

上記の流れで作成された画像が以下になります。

サムネイル画像


文字化けしてました。日本語フォントがもともと入ってなかったので、以下の手順で日本語フォントをインストールしました。


日本語フォントのインストール 日本語フリーTrueTypeフォントであるIPAフォントを以下のサイトよりダウンロード
一般利用者向けIPAフォントのダウンロード

# unzip IPAfont00203.zip
# mv IPAfontIPAfont00201/*.ttf /usr/share/fonts/japanese/TrueType/
# fc-cache -fv
# vi /etc/fonts/local.conf 

以下の内容を書き込む

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <test name="family" compare="eq">
      <string>IPAPMincho</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <test name="family" compare="eq">
      <string>IPAPGothic</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <alias>
    <family>IPAPMincho</family>
    <default><family>serif</family></default>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>IPAPMincho</family>
    </prefer>
  </alias>
  <alias>
    <family>IPAPGothic</family>
    <default><family>sans-serif</family></default>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>IPAPGothic</family>
    </prefer>
  </alias>
  <alias>
    <family>IPAGothic</family>
    <default><family>monospace</family></default>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>IPAGothic</family>
    </prefer>
  </alias>
</fontconfig>


フォントインストール後のサムネイル

サムネイル

まとめ

というわけで、linuxサーバーで作ってみたわけですが・・・。
やはりやるならwindowsサーバーですねw
linuxでimagegrabscreenが使えるようになればいいのにな。

参考サイト(感謝)

 →ツイッターのフォローはこちら
スポンサード リンク
         

関連記事

↑ページ上部へ

アクセスカウンター

今日 : 1 昨日 : 2

ブログ内容

主にウェブ関係のことを書いてます。たまにブレイクダンスとか他のことも書いています。

プロフィール

MICK

MICKです。

1983年1月24日生まれ。ウェブの世界にいるのは、偶然のようで必然なのかも。

好きなこと :
 挑戦すること。物事に没頭すること。勉強すること。
嫌いなこと :
 自慢話を聞くこと。人の悪口を言うこと。

運営サイト

      

カテゴリ一覧

サイト広告

オススメの書籍とか

感想

紹介

色々

最近のコメント

最新記事

注目記事

人気記事

最近の人気記事

人気の記事

関連サイト

運営サイト

色々

最近のトラックバック