2

ページがロードされたときに(ユーザーの操作なしで)いくつかの重複するキャンバスに画像を生成しますが、完全に描画するには〜3秒かかります. これらのキャンバスをフラット化し、この画像をサーバー上で PNG に変換して、サムネイル プレビューで使用したいと考えています。

(ctx.drawImage(other_canvas,0,0) を使用して) 単一のキャンバスにフラット化してから、ctx.toDataUrl() はまさに私が必要としているもののように見えます。ユーザーのブラウザを必要とせずにサーバー側でこれを行う方法はありますか? ページをロードし、キャンバスのレンダリングが終了するのを待ってから、いくつかの javascript を挿入して平坦化し、toDataUrl を呼び出し、結果の画像をサイズ変更して保存できるコマンドライン JavaScript/キャンバス パーサーのようなものです。

最初の人がページを表示する前にサムネイルが必要なため、サムネイルをレンダリングしてサーバーに送り返す AJAX ソリューションは機能しません。また、高速である必要があります (できれば、キャンバスのレンダリングにかかる​​時間 (3 秒) よりわずかに長くするだけです)。browsershots のような外部サービスが待ちきれません。

私は CutyCapt を見ましたが、それはキャンバスだけでなく Web ページ全体をレンダリングします (また、何らかの理由でキャンバスにすべてを描画していないようです)。

ありがとう。

4

3 に答える 3

1

Webkit ブラウザーのコマンド ライン バージョンである PhantomJS を調べると、レンダリングされたページの出力を画像に保存するなどのクールなことを行うことができます。それとスクリーンショット。

http://phantomjs.org/

于 2013-04-17T15:20:46.710 に答える
0

PHP には、HTML5 キャンバスに似た機能を提供するサーバー側の画像生成用のさまざまなライブラリがあります。

于 2013-04-17T15:19:35.907 に答える