我对这个问题的兴趣大多是理论上的。
我想在本地存储图像(用于webgl纹理),例如我已经用于存储网格的indexedDB。
这可能吗?如果是的话怎么样?这是一个好主意吗?
答案 0 :(得分:1)
您应该能够通过转换或将其作为base64图像存储在indexedDb中。
请记住,每个站点的数据库只有5Mb的限制,除非您在Manifest中指定了unlimited,但它需要用户授权。
答案 1 :(得分:1)
您当然可以使用indexedDB来存储纹理。您需要存储宽度和高度,是否具有Alpha通道和RGB(A)值数组。然后,您可以直接从中创建纹理,如this question的答案中所示。
至于这是一个好主意,这是一个棘手的问题。你为什么要这样做?速度?资源访问的一致性? indexedDB存储上通常存在一些限制,这使得难以存储大量资源,并且坦率地从图像加载可能会更快,因为浏览器开发人员将优化该路由。此外,DB中的图像实际上比JPEG或PNG等效图像更大,因为您可能希望将其存储为未压缩的。值得进行基准测试,但我怀疑这里的表现有多大优势。