我的問題:
我正在製作HTML5遊戲,並試圖通過一次繪製背景而不是每隔一幀重新繪製一次,以使其更快。
爲此,我在畫布上繪製了背景,然後嘗試從中獲取ImageData。不幸的是,我被一個安全錯誤攔截了。無法執行操作,因爲圖像來自外部來源。
我研究過這個,看起來這是一個「功能」,阻止壞人從用戶的硬盤中竊取內容。雖然我加載的這些圖像不是來自硬盤驅動器。
我真的很想加快我的比賽。有沒有解決方案來解決安全錯誤,或者甚至可以直接將圖像加載到圖像數據中,以便通過循環像素來繪製圖像?
(注:我不希望有多個畫布來完成這項工作的混亂)
謝謝,甘如何直接將圖像繪製到ImageData數組 - HTML5/Javascript
1
A
回答
1
周圍有沒有辦法,但你可以從另一個域使用的繪製圖像getImageData
在這種情況下總會引發安全錯誤。這是爲了防止竊取敏感信息,因爲網站可以生成包含基於cookie或IP地址的私人用戶信息的動態圖像。但是,您可以簡單地使用服務器端腳本來代理映像。
但老實說getImageData
和putImageData
是相當慢,我不明白這會如何加快你的遊戲。在我看來,你認爲繪製圖像數據比簡單地使用drawImage
,它的而不是更快。
如果您希望動畫看起來不錯,那麼您將不得不重繪所有內容,這就是動畫的工作方式。
相關問題
- 1. 如何繪製圖像的直方圖?
- 2. 如何將圖像繪製到pictureBox?
- 3. 可繪製圖像數組
- 4. 將圖像繪製到gtk.DrawingArea?
- 5. 直接繪製到一個圖片
- 6. 繪製直方圖與二維數組
- 7. 直接繪製到面板
- 8. Java - 如何從圖像數組中依次繪製圖像
- 9. Java將圖像像素保存到數組中並繪製圖像
- 10. 如何使用OpenGL直接在屏幕上繪製像素數組?
- 11. 如何使用plotutils直接繪製一個數組
- 12. 如何在Google圖表上繪製垂直線到直方圖?
- 13. 將背景圖像繪製到matplotlib圖
- 14. 試圖將圖像繪製到JPanel
- 15. 繪製深度圖像的直方圖?
- 16. 如何將圖像從url數組加載到圖像數組?
- 17. 如何繪製數組中的直方圖
- 18. 如何使用ImageMagick將鏡像文本繪製到圖像上?
- 19. 如何繪製座標點到圖像
- 20. 如何在python中繪製RGB圖像的3D直方圖
- 21. 從一個數組中繪製圖像
- 22. Matlab。如何繪製圖像
- 23. matplotlib:如何繪製圖像
- 24. 如何繪製圖像
- 25. 如何繪製swt圖像?
- 26. 將圖像轉換爲ImageData(Uint8ClampedArray)
- 27. 如何在圖像上繪製圖像?
- 28. 如何直接在桌面上繪製?
- 29. 如何將圖像添加到數組?
- 30. 將圖像繪製到html5畫布
我明白了。嗯。我只是在想,繪製704個單獨的44x44圖像會比繪製單個968x748圖像數據慢。我不知道。你能想出其他提高效率的方法嗎? – Gan 2012-02-16 06:09:53
哦,在這種情況下,我建議你做服務器端腳本來代理圖像,而不是使用getImageData,如果你只是使用canvas.toDataURL來創建一個Image對象並用drawImage繪製它,那會更好。 – Delta 2012-02-16 06:18:29
會有辦法將圖像數據轉換爲圖像嗎? – Gan 2012-02-16 06:30:46