在 MySQL 数据库中保存画布绘图的便捷方法是什么

问题描述 投票:0回答:1

我有一个棋盘游戏应用程序,我想扩展该应用程序,使用户能够通过画布在游戏区域上绘图并保存游戏状态,包括将画布绘图保存在 MySQL 数据库上,并稍后访问这些屏幕截图。现在我正在寻找如何将画布绘图保存在数据库中的方法。我想我可以通过函数 getImageData() 提取 ImageData 对象。现在该对象包含一个大数组,它最终代表画布图像的像素。我可以将数组中包含的数据转换为文本,以便能够将其保存在数据库中。当我稍后想要访问该画布绘图时,我可以从数据库中调用表示像素数组的文本,并在客户端再次将其转换为数组,以便能够再次构建 ImageData 对象并将其放入画布中。

现在发现表示数组的文本可能有 5 兆字节大小!我可能想从服务器调用几十个用户的屏幕截图,所以几十个 5 兆字节。

我的问题是:有没有更有效的方法将画布绘图保存在服务器上?所描述的方式是否良好或有效,可以用更好的方式制作吗?

javascript php mysql html5-canvas
1个回答
0
投票

您通常不会将 5 MB 图像存储在数据库中,而是将图像作为文件存储在服务器上,并在数据库中放置一个引用该文件的条目。

存储图像数据时可以使用压缩。例如 ZIP,但 JPEG 等图像格式具有内置压缩功能。

但是,最好的方法不是存储图像,而是记住游戏的状态和用户的输入。这需要更少的存储空间。您可以使用这些数据重建画布。

© www.soinside.com 2019 - 2024. All rights reserved.