gpt4 book ai didi

java - 为图像编辑器快速、可靠地保存/加载文档状态

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:56 28 4
gpt4 key购买 nike

我正在寻找对我存储 Android 和 iPhone 手机位图编辑器状态的方法的批评。甚至是“我觉得不错!”回复会很棒!

在应用程序中,当前用户文档包含多个位图层(每个可能为 1024 x 768 像素),每个层都可以在其上绘制。申请的基本要求是:

  1. 我需要能够保存和恢复文档状态。

  2. 当用户退出应用程序或接到电话时,我需要能够快速(大约 2 秒内)保存文档状态。

  3. 如果应用程序崩溃,我需要能够恢复文档状态(即使用户丢失了 30 秒的工作也没关系)。

对于 1,我找不到任何支持图层的打开文件格式。我打算使用以下文件结构来存储我的文档:

document_folder/
layer1.png
layer2.png
...
metadata.xml

图层仅存储为 .png 文件,而 .xml 文件包含当前可见的图层等数据。文档文件夹可以由应用程序按原样打开,也可以存储在 .zip 文件中。对于其他应用程序来说,这似乎是一种很好的简单格式。

除了 .png 文件外,我还将允许以自定义 .raw 文件格式保存图层,其中包含来自位图的未处理原始像素数据。我可以在手机上非常快速地保存这些文件 (<0.5s),而 .png 文件需要一两秒钟。

我的快速保存文档的计划是,在启动时创建一个名为/autosave 的文件夹,并在其中保存所有图层的 .raw 版本。在一层上执行一些编辑命令后,我会在后台线程中更新该层的 .raw 文件。为了保存时的稳健性,我会将图层保存为例如layer1_tmp.raw 并在我确认文件已完全写入后,将 layer1.raw 替换为该文件。

如果应用程序在使用过程中崩溃,我会重新打开/autosave 文件夹。当应用程序关闭或用户接到电话时,我只需将最后修改的图层更新为自动保存。当用户想要保存时,我只是将所有的 .raw 文件转换为 .png 文件,然后压缩文件夹。

你怎么看?有没有明显的缺陷?有更简单的方法吗?我是在以某种方式重新发明轮子吗?谢谢。

最佳答案

您的想法对我来说听起来不错:在进行时将图层保存在背景中。用户当前未编辑的任何图层都应排队等待在他们从该图层切换到其他图层后立即保存。如果应用程序中断,您只需保存当前工作层,正如您所说,这可以在 0.5 秒内完成。

为什么还要为 png 格式烦恼呢?只有在将数据导出到另一台机器/系统时才需要它,对吧?

关于java - 为图像编辑器快速、可靠地保存/加载文档状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3894668/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com