Windows桌面的Evernote客户端应用程序允许用户创建墨迹笔记,这些笔记内部存储为笔记资源,具有特定的mime类型:application/vnd.evernote.ink
。资源的格式是known to not be与开发人员社区共享,非Windows平台的官方Evernote应用程序不支持这种创建手写笔记的特定方式;此类客户端通过只读said可以从Evernote服务器下载的只读图像表示现有的墨迹(通过Windows客户端创建)。
我无法找到任何进一步的文档或说明如何做到这一点。唯一可用的知识来源似乎是source code的NixNote2,这是Linux桌面的非官方开源Evernote客户端。以下是从上述源代码中理解的此类请求的URL结构:
https://[service]/shard/[shardId]/res/[resourceGuid].ink?slice=[sliceNumber]
其中[service]
是Evernote服务的名称(sandbox.evernote.com或www.evernote.com),[shardId]
是存储注释的分片ID,{{1}是墨水笔记资源的GUID,一个人希望通过请求下载的图像,[resourceGuid]
是下载图像的垂直条纹的编号,即整个图像应该通过更多下载而不是一个请求。
我的问题是,如何找出墨迹图像可能包含的切片数量,以及要求的切片数量?理论上,可以逐个下载垂直条纹,直到所接收的切片的累积高度达到音符图像的资源的高度,但这将意味着逐个进行同步请求,这在性能方面不是最佳的。
我也尝试过没有切片部分的请求。我收到了回复,但不知何故收到的数据似乎已损坏,我无法从中读取PNG图像。