我需要构建一个HTML5
canvas
包含非常大的图像,可能高达 10-15MB。我的第一个想法是将图像分成几个块,这些块将在水平移动通过画布时加载。
对这个想法有什么想法吗?这是一个好的吗?也许我错过了一些已经实现的优化功能?
我需要构建一个HTML5
canvas
包含非常大的图像,可能高达 10-15MB。我的第一个想法是将图像分成几个块,这些块将在水平移动通过画布时加载。
对这个想法有什么想法吗?这是一个好的吗?也许我错过了一些已经实现的优化功能?
你是正确的,这种平铺是大多数提供大图像(如谷歌地图)的应用程序的工作方式。
不幸的是,这里没有任何其他巧妙的优化。
这可能是一个好主意,但这取决于您的应用程序。下载图像所需的时间可以认为是很小的,而且经常如此,但它确实是不可预测的。因此,根据您的应用程序是静态应用程序(谷歌地图)还是动态应用程序(游戏),延迟加载可能是一个好主意,也可能不是一个好主意。
如果用户可以等待,您可以安全地将图像拆分为不同的图块并按需加载。
如果它是一个游戏,你最好在它开始之前预加载所有东西——至少预加载一个关卡,但我不知道它是否包含关卡,我们甚至没有被告知它是否是一个游戏:)
如果它不是需要立即响应的东西,您也可以做的是使用服务器脚本来提取您需要的任何较大图像,因此您可以创建一个图像,而不是依赖于预先调整大小的图块,设置它的来源
'imageSliceScript.php?x=whatever&y=whatever'
然后将其绘制到画布上,或者将其保留为图像。这样一来,您只能获得当时需要的图像,而不必处理诸如视口跨边缘的多个图块之类的问题。