classics.

2017/01/18 Wedflickr

現代のWebページのスクリーンショットを作成する方法メモ

HeartRails Capture という太古のサービスもあったりするけれど、まだIEコンポーネントでサムネイル作ってるっぽいし、URLと対じゃなくてその時時のスクリーンショットを撮りたいとかいう気持ちもあったのでやってみた。ということで apt(wkhtmltopdf) でサクッと入る wkhtmltoimage を使えばよかった。あとサーバー(さくらVPS上のUbuntu)でやるのでレンダリングのために xvfb-run が必要だった。コマンドだとこんな感じ。

$ xvfb-run wkhtmltoimage https://oquno.com/ oqunocom.png

あとは小さめのサムネイルが欲しかったらこれを ImageMagic で

$ convert -resize 800x -crop 800x600+0+0 oqunocom.png oqunocom.thumb.jpg

とかすると(幅800pxにリサイズしてから上部 800x600 のサムネイルに切り出している&ついでに jpg にしてファイルサイズ削減している)サムネイルっぽくなる。

という感じでオレオレGyazoにURL指定でキャプチャ取ったりする機能を追加してみた。ただ、今判明してる限りだと wkhtmltoimage だと --height オプション無しで Twitter の Tweet のパーマリンク投げるとうまくいかない(& --height つけると高さ固定になってしまうのでサムネイル撮るだけになる)。これは同じくWebKitを使ってるNightmare(PhantomJS)を使うと問題ないっぽいのでちゃんとやっていくひとはNightmare使うのが良さそう。