2011-06-22 8 views
0

私は、を生成するソリューションを探しています。ウェブサイトのリストのスクリーンショットのサムネイル画像をディスクに保存します。サムネイルを生成するためにcutycaptとimagemagicのスループットを向上

私は次のコマンドがそれを行うことができることを発見しました。そして、画像をうまく生成するのubuntuシェルスクリプトを入手しました。 (CutyCapt + ImageMagickのパッケージ)

cutycapt --url=http://www.yahoo.com --out=yahoo.png 
convert yahoo.png -thumbnail 150x180^ -gravity NorthWest -extent 150x180 yahoothumb.jpg 

しかし、それはシーケンシャルと時間の多くを取っているし。私はApacheでWebページとしてホストするPHPまたはPythonスクリプトを作成することを考えました。次に、別個のプログラムは、画像を生成するスループットを増加させるために複数の要求を生成する。

私はPHPを最初に試しました。

<?php echo exec('cutycapt --url=http://www.google.com --out=/var/www/google.png --javascript=on');?> 

そしてCutyCapt は以下と失敗: CutyCapt:Xサーバに接続できません。 私はPHP/Apacheを同じIdentity/userで実行しています。私は通常のシェルスクリプトを実行します。

Btw、私はC#開発者です。したがって、PHP、Linux、Scriptsにはあまり慣れていません。私はPHPの設定ファイルを扱うことができます:)しかし、

私はメモリ内でIEを起動しようとしましたが、厄介であり、最良の結果を生み出しません+ STAが必要です: 。

+0

私はまだ答えを探しています - まだオープンな質問と考えてください。 – cdpnet

答えて

0

イメージ処理を行う外部プログラムに頼る代わりに、PHPの組み込みのGD image libraryを使用してみてください。私の経験では、超高速で非常に広範囲で、あらゆる画像解析と操作機能を提供しています。

Here私はPHPで数年前に書いたサムネイルのスクリプトは、多くのオプションを提供するだけでなく、自動的に作成した画像に罫線を追加して追加するトリッキーを統合しています。申し訳ありませんがコードは一種のものですが、それが採用している手法は繰り返し可能です。 Here is the script in action

編集:

私はcutycaptが何をしたか知りませんでした。今あなたがしようとしているものに関連するthis questionのようです。ウェブページをPDF形式に変換することで、少なくとも目標に一歩近づくことができます。

+0

これは参考になると思います。しかし、URLのスクリーンショットを取得することは完全には不可能です。そしてそれが達成されても、それは窓だけのようです。私はもっ​​と見るでしょう。 – cdpnet

+0

それは窓なので、私たちが並行することができるかどうかはわかりません。私のC#プログラムでは、シングルスレッドモードで実行するためにIEが必要でした。 また、スクリーンショットを複数の方法で撮影したことを付け加えたいと思います。 Windowsでの2つの方法とLinuxでのこの1つの方法。 cutycaptのこの1つは私に最高のイメージ出力を与えています。 – cdpnet

+0

@cdpnet - PHPでは並列処理がサポートされていません。これは、一度に複数のHTTPリクエストを作成するブラウザの機能と、複数のリクエストを処理するサーバーソフトウェアの機能によって解決されます。 PHPは一種のものです。 – amphetamachine

3

this pageで詳細に説明されているXvfbとCutyCaptの組み合わせは、数年間問題なく使用されています。実際、私はその組み合わせが信頼できることを発見しました。私が取り組んでいるいくつかの新しいRubyアプリケーションの中から組み合わせを簡単に使用できるようにRubyラッパーライブラリ(capit)を書きました。

また、本番では使用していませんが、同様の結果をPhantomJSライブラリのレンダリング機能でも複製できました。

EDIT:

あなたは一種のサービスとしてCutyCaptを実行する方法の例についてはthis articleをチェックアウトすることができます。