スクリーンキャプチャを自動生成

ブログ | 2007/12/13 18:38
PHPからアップルスクリプトの実行を含んだシェルスクリプトを実行して、スクリーンキャプチャを生成するのです。

<?php

$url = 'http://karasu.net';
$filepath = '/Users/kuwa/Documents/sc_php.png';

$cmd = <<<EOF

osascript << EOS
tell application "Safari"
 activate
 open location "$url"
 set bounds of window 1 to {248, 22, 1048, 800}
end tell
EOS

sleep 3
screencapture $filepath
sips --cropToHeightWidth 600 770 $filepath --out $filepath
sips --resampleHeightWidthMax 300 $filepath --out $filepath

EOF;

shell_exec($cmd);

?>

原理としては、
1. safariで目的のページを開く(applescript)
2. そのウインドウの大きさと位置を調整する。(applescript)
3. スクリーンキャプチャを撮る。(shell)
4. そのファイルをトリミングし、サイズを調整して保存。(shell)

モニターのサイズによって、数字は調整が必要。上記のものでは、MacBook 1280×800を利用。


参考
http://www.sra.co.jp/people/h-asaoka/study/Mac/s...
http://www.bison.jp/nucleus/index.php?itemid=314
http://jp.php.net/manual/ja/function.shell-exec....

kuwa
rottelブックマークに実装中。
そこで、つまずいたことメモ。

作業フローとしては、データベースからURLを引っぱって来て、上記PHPを実行するのだけれど、cronで実行すると、screencaptureがうまく動かない。

試行錯誤の結果、アップルスクリプトアプリケーションを別途つくって、PHPには、
open -a (そのあぷり).app
にて実行させた。

アップルスクリプトには、
do shell script "screencapture /User/kuwa/Desktop/tmp.png"
みたいな一行だけを書く。
kuwa | 編集回数: 1 | 2008/01/21 13:53
http://www.michaelkorsoutletonline.ca/    michael kors outlet online sale
http://www.metalliens.com/    Nike Air Jordan Hommes
http://www.raybanclubmaster.us    ray ban clubmaster
http://www.burberryoutlets.ca    burberry outlet online store
http://www.coach-australia.com/    coach australia
me adc9.23 | 2017/09/23 15:55
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close