我的問題:
我正在製作HTML5遊戲,並試圖通過一次繪製背景而不是每隔一幀重新繪製一次,以使其更快。
爲此,我在畫布上繪製了背景,然後嘗試從中獲取ImageData。不幸的是,我被一個安全錯誤攔截了。無法執行操作,因爲圖像來自外部來源。
我研究過這個,看起來這是一個「功能」,阻止壞人從用戶的硬盤中竊取內容。雖然我加載的這些圖像不是來自硬盤驅動器。
我真的很想加快我的比賽。有沒有解決方案來解決安全錯誤,或者甚至可以直接將圖像加載到圖像數據中,以便通過循環像素來繪製圖像?
(注:我不希望有多個畫布來完成這項工作的混亂)
謝謝,甘如何直接將圖像繪製到ImageData數組 - HTML5/Javascript
1
A
回答
1
周圍有沒有辦法,但你可以從另一個域使用的繪製圖像getImageData
在這種情況下總會引發安全錯誤。這是爲了防止竊取敏感信息,因爲網站可以生成包含基於cookie或IP地址的私人用戶信息的動態圖像。但是,您可以簡單地使用服務器端腳本來代理映像。
但老實說getImageData
和putImageData
是相當慢,我不明白這會如何加快你的遊戲。在我看來,你認爲繪製圖像數據比簡單地使用drawImage
,它的而不是更快。
如果您希望動畫看起來不錯,那麼您將不得不重繪所有內容,這就是動畫的工作方式。
相關問題
- 1. 如何繪製圖像的直方圖?
- 2. 可繪製圖像數組
- 3. 將圖像繪製到gtk.DrawingArea?
- 4. 繪製直方圖與二維數組
- 5. Java - 如何從圖像數組中依次繪製圖像
- 6. 如何使用plotutils直接繪製一個數組
- 7. 如何將圖像從url數組加載到圖像數組?
- 8. 如何繪製數組中的直方圖
- 9. 如何使用ImageMagick將鏡像文本繪製到圖像上?
- 10. 如何在python中繪製RGB圖像的3D直方圖
- 11. 從一個數組中繪製圖像
- 12. 如何繪製swt圖像?
- 13. Matlab。如何繪製圖像
- 14. 如何繪製圖像
- 15. 將圖像轉換爲ImageData(Uint8ClampedArray)
- 16. 將2D圖像繪製到Targetmarker上
- 17. 如何直接在桌面上繪製?
- 18. 如何將圖像添加到數組?
- 19. iphone:如何將圖像複製到圖像組?
- 20. 直接在繪圖函數中繪製值
- 21. 繪製直方圖
- 22. 繪製直方圖
- 23. 繪製直方圖
- 24. 將Drawline圖像繪製成Picturebox圖像
- 25. 直接在matplotlib圖上繪製箭頭
- 26. Pyglet將一組圖像繪製成一個較大的圖像
- 27. 如何直接在屏幕上繪圖
- 28. 如何將AjaxControlToolkit TabPanel繪製到位圖
- 29. 如何將UIImage「繪製」到視圖中?
- 30. 如何在c中繪製直方圖
我明白了。嗯。我只是在想,繪製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