我注意到每个使用 Canvas 对象的人都将其围绕像素缓冲区的方式乘以 4 (RGBA)。我使用原生像素编码(Delphi 和 C++)进行了大量工作,并将其识别为普通的 32 位 RGBA(888-8 编码)。 我的问题是:有没有办法检测浏览器的像素格式?如果您在支持 16 位(565 编码)或 24 位(888 编码)的设备上运行,如果浏览器必须为每次重绘降级位图,则速度会非常慢。尤其是涉及到 alpha 混合时。
此外(这是次要的):是否可以在 javascript 下创建纯 888 或 565 位图?或者基于 8 位调色板的位图呢?在我看来,基于 JS 的游戏只需要使用 8 位像素就可以受益匪浅。
最佳答案
没有。似乎没有办法降低 Canvas 的像素,因为就规范本身而言,这就是 imageData 的简单含义。
您当然可以只使用 8 位 PNG 制作 javascript 游戏,这将节省空间和加载时间,但不会节省渲染时间。
关于Javascript Canvas 像素格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780760/