For Want Of A Better Word

【wkhtml】PHPで、WEBサイトキャプチャ取得と、指定サイズにリサイズするクラス作成

      2015/04/18

先の記事で、wkhtmlで切り抜き(トリミング)は良いけど、画像全体のサイズの調整がうまく行かなかった。
【wkhtml】オプションの確認 – For Want Of A Better Word

なので、画像リサイズはPHPでGDライブラリを使ってやることにしてクラスを作成した。

前提
・wkhtmlのインストール

yum install ipa-mincho-fonts ipa-gothic-fonts ipa-pmincho-fonts ipa-pgothic-fonts #IPA日本語ライブラリ
fc-cache -f

yum install xorg-x11-fonts-Type1 #wkhtml依存ライブラリ
yum install xorg-x11-fonts-75dpi #wkhtml依存ライブラリ
wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm
rpm -ivh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

・php GDライブラリのインストール

yum -y install php-gd

んで、下記をコピペして、CaptureClass.phpとして保存

あとは下記のように newして「getCaptureMain」を実行すればキャプチャが取れる。

前提

(引数)
・$url= 取得先ページURL
・$image_name = 出力ファイル名のベース
・n_width = 出力横サイズ
・n_height= 出力縦サイズ

※フォーマットはjpg
※出力ファイル名は、「image_name_横x縦.jpg」という感じ
※こいつでは、あくまで正方形でしか取れないのでその想定で。。

詳細

・動きとしては、wkhtmlで画像を取得。この時は1024*1024の正方形。execの中で、そうしているので、heightを外せばとりあえずは全画面取れる。

・wkhtmlでpngとかフォーマット変更は出来るが、リサイズ処理もpng用等フォーマットに合わせて変更する必要あり。

・エラーハンドリングなんて面倒なことはしてないぜ

 - php, wkhtml, スクレイピング

  関連記事

php-logo
HTTPレスポンスヘッダ

http://d.hatena.ne.jp/s-kita/20080927/12 …

php-logo
symfony1.4

ディレクトリ構造 プログラミングするファイルは主にappsの中に。 apps – …

php-logo
イテレータ

現在の要素を指すポインタのこと。 配列へのアクセスや、テーブルデータのアクセスな …

php-logo
phpオブジェクトのコピー

cloneキーワードを利用して実行する。( = は参照コピー ) [crayon …

apache-logo
apxsとは

phpとapacheを連携させている間にapxsのインストールが必要とのことで、 …