私の問題:
私は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. gpuから直接画面上に描画する
- 9. アップロード画像を直接
- 10. C++ DirectShow W32直接フレームに描画
- 11. 個人用wikiに直接描画
- 12. 描画領域に画像を描画
- 13. 配列を画像に直接変換する(各セルは1ピクセルになる)
- 14. 数字/グラフィックを画面に直接描画しますか?
- 15. 縁取り画像の描画方法
- 16. 画像の配列を作る方法
- 17. VB.NETで画像を上に描画する方法
- 18. Max SDKでビューポートに画像を描画する方法
- 19. アンドロイドで小さな画像をキャンバスに描画する方法
- 20. 画像を描画してファイルに保存する方法は?
- 21. iPhone SDKの画像にアウトラインを描画する方法
- 22. Android:画像の上に描画を実装する方法
- 23. SwiftでNSOpenGLViewに画像を描画する方法は?
- 24. Vaadin 8.2.0:グリッドセルの画像を垂直に整列する方法
- 25. 浮遊画像を垂直に整列する方法
- 26. 2D配列に三角形を描画する方法(Java)
- 27. 画像を直接ファイルURLに添付
- 28. 画像を直接フォトアルバムにダウンロード
- 29. 背景画像の上に画像を配置する方法
- 30. Qtのバイト配列からデータを読み込んでQPainterに画像を描画する方法は?
です。 Hm。私はちょうど、704個の個別の44x44画像を描画することは、単一の968x748画像データを描画するよりも遅くなると考えていました。わかりません。他の方法で効率を上げることはできますか? – Gan
ああ、その場合、イメージをプロキシするためにサーバー側のスクリプトを実行することをお勧めしますが、getImageDataを使用する代わりに、canvas.toDataURLを使用してImageオブジェクトを作成し、drawImageで正常に描画する方が良いでしょう。 – Delta
イメージデータをイメージに変換する方法はありますか? – Gan