我的应用程序的一部分大量使用图像处理。使用各种方法使用 ajax 帖子和图像处理服务器端进行裁剪、过滤等。用户采取的每个操作 Action 都会在不删除原始图像的情况下创建一个物理图像,以便允许“撤消”系统让用户能够将他的图像恢复到之前的任何时间点。
当用户完成 session 或关闭浏览器时,所有这些“临时”图像都会通过发送到服务器的消息被删除。
对于现代浏览器,我们将使用 html5 扩展图像处理功能。使用 Canvas 使我们能够在客户端执行所有这些图像操作,而无需通过编码和动态嵌入 base64 数据来创建额外的静态图像。
我担心的是“撤消”系统。使用静态回退方法,我们存储一个对象数组,其中包含指向静态图像的链接。这提供了完整的撤消功能。但是,如果我们在所有客户端都这样做,那么这个数组实际上必须包含每个“撤消”点的 base64 数据的副本对于用户正在操作的每个图像(典型的用例可能是 20 个原始图像,每个图像有 4-5 个撤消点)。
在我花几天时间对此进行原型(prototype)设计之前,我希望有人会对这种方法提出一些意见。这是个好主意吗?馊主意?从浏览器性能和内存使用的 Angular 来看,存储大量 base64 图像数据对象是不是一个坏主意?
欢迎任何想法,提前致谢。
最佳答案
这是个坏主意。 Base64 占用的存储空间比实际编码的数据多 30%。如果可以通过实际 URL 访问服务器上的图像,请考虑保留对 <img>
的引用从 DOM 分离的元素。
关于php - 在这种情况下哪个最好,Base64 还是静态图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062117/