【发布时间】:2017-11-13 08:14:33
【问题描述】:
我在画布中有一张图片。我想包含一些简单的文本元数据,而不需要安装额外的库。查看 toDataURL 的结果,这似乎可以通过从 toDataURL 结果解析 base64 数组并在 IDAT 块之前插入具有长度、类型、键:内容和 crc 字节的块。 但是,我无法将 base64 数组与https://www.w3.org/TR/PNG-Structure.html 中描述的 png 结构相匹配。例如,前 8 个字节应该是带有小数的签名字节:137 80 78 71 13 10 26 10。但是 toDataURL 结果中的第一个 ASCii 字符(在 data:image/png; base64," 前缀之后)是iVBORw0. 这与预期的签名如何匹配?
我正在使用 javascript,并且转换是在客户端完成的。
谢谢!
【问题讨论】:
-
你得到的dataURI是二进制数据的base64版本。您必须先对其进行解码,甚至使用 canvas.toBlob 返回的 blob 中的 arrayBuffer,而不是使用 toDataURL
-
太棒了!非常感谢您的回复,@Kaiido!
标签: javascript arrays canvas png chunks