私の問題:
私はHTML5ゲームを作っています。毎回フレームを再描画するのではなく、一度バックグラウンドを描画して高速化しようとしています。
これを行うには、キャンバスに背景を描画してからImageDataを取得しようとしました。残念ながら私はセキュリティエラーによって停止しました。画像が外部ソースからのものであるため、できません。
これについて調査したところ、悪意のあるユーザーがユーザーのハードドライブからコンテンツを盗むのを防ぐ「機能」と思われます。私がロードしたこれらのイメージはハードドライブからではありません。
私は自分のゲームをスピードアップできるのが大好きです。セキュリティエラーを回避したり、画像を画像データに直接ロードしてピクセルをルーピングすることで描画できるソリューションはありますか?
(注:私は、複数の仕事を得るためにキャンバスを台無しにしたくない)
おかげで、ガンをその周りに方法はありませんImageData配列に画像を直接描画する方法 - HTML5/Javascript
1
A
答えて
1
、あなたが別のドメインの使用からイメージを描くことができますがgetImageData
は常にその状況でセキュリティエラーが発生します。これは、WebサイトがCookieやIPアドレスに基づいてプライベートユーザ情報を含む動的イメージを生成できるため、機密情報の盗用を防ぐためです。ただし、サーバー側のスクリプトを使用してイメージをプロキシすることもできます。
正直なところ、getImageData
とputImageData
はかなり遅いですが、ゲームのスピードアップの仕方はわかりません。画像データの描画は、単にdrawImage
を使用するよりも速いと思われます。ではなく、です。
アニメーションがうまく見えるようにするには、すべてを再描画する必要があります。これがアニメーションの仕組みです。
関連する問題
- 1. バイト配列から直接クロップ画像
- 2. wxpythonで直接画面に描画する方法は?
- 3. すべてのウィンドウの上に直接描画する描画
- 4. 画像を描画する方法
- 5. UIImageを描画する方法または-drawRectに直接描画する方法:
- 6. パネルに直接描画する
- 7. デスクトップに直接描画する方法は?
- 8. アップロード画像を直接
- 9. 画像の配列を作る方法
- 10. gpuから直接画面上に描画する
- 11. C++ DirectShow W32直接フレームに描画
- 12. 個人用wikiに直接描画
- 13. 数字/グラフィックを画面に直接描画しますか?
- 14. 描画領域に画像を描画
- 15. iPhone SDKの画像にアウトラインを描画する方法
- 16. Max SDKでビューポートに画像を描画する方法
- 17. VB.NETで画像を上に描画する方法
- 18. アンドロイドで小さな画像をキャンバスに描画する方法
- 19. クリック時に配列から描画する方法は?
- 20. Qtのバイト配列からデータを読み込んでQPainterに画像を描画する方法は?
- 21. TextBoxにアニメーション画像を描画する
- 22. キャンバスに描画するオブジェクトの配列
- 23. OpenGLでビットマスク画像を描画する最速の方法
- 24. Qtでタイル画像を描画する方法
- 25. OpenGlをビットマップに直接描画する(表示なし)
- 26. Java Swingアプリケーションをビデオに直接描画するアプローチ
- 27. Three.jsでWebGLエリアにUIエレメントを直接描画する
- 28. TPanelで画像を描く方法
- 29. ウェブブラウザインターフェイスを使用してクラウドデータベースに画像を直接スキャンする方法
- 30. Rails 3に画像の配列を格納する方法は?
です。 Hm。私はちょうど、704個の個別の44x44画像を描画することは、単一の968x748画像データを描画するよりも遅くなると考えていました。わかりません。他の方法で効率を上げることはできますか? – Gan
ああ、その場合、イメージをプロキシするためにサーバー側のスクリプトを実行することをお勧めしますが、getImageDataを使用する代わりに、canvas.toDataURLを使用してImageオブジェクトを作成し、drawImageで正常に描画する方が良いでしょう。 – Delta
イメージデータをイメージに変換する方法はありますか? – Gan