首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将tExt块添加到画布数据数组中,并将其保存为javascript中的png文件?

如何将tExt块添加到画布数据数组中,并将其保存为javascript中的png文件?
EN

Stack Overflow用户
提问于 2017-06-11 22:58:19
回答 1查看 282关注 0票数 0

我在画布上有一幅画。我想包括一些简单的文本元数据,而不需要安装额外的库。查看toDataURL的结果,这似乎是可能的,方法是解析来自toDataURL结果的base64数组,并在IDAT块之前插入具有长度、类型、键: content和crc字节的块。但是,我无法将base64数组与https://www.w3.org/TR/PNG-Structure.html中描述的png结构相匹配。例如,前8个字节应该是带有小数的签名字节: 137 80 78 71 13 10 26 10。但是ASCii结果中的第一个toDataURL字符(数据后面是:base64/png;base64,“前缀”)是iVBORw0。这与预期的签名如何匹配?

我正在使用javascript,转换在客户端完成。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-12 15:41:14

感谢凯伊多上面的评论,我成功地使用base64 64-binary.js代码(这里是http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/ )解码了这个http://blog.danguer.com/2011/10/24/base64-binary-decoding-in-javascript/数组。这是如何使用它的一个片段:

代码语言:javascript
运行
复制
  pngLayer = layerToSave.canvas.toDataURL();
  var uintArray = Base64Binary.decode(pngLayer.replace(/data:image\/png;base64,/,''));
  console.log("signature:", uintArray.slice(0,8));
  console.log("chunk 1 length:", uintArray.slice(8,12));
  console.log("chunk 1 type:", uintArray.slice(12,18));

此c#代码作为如何使用png结构:https://github.com/gbenison/png-text-embed/blob/master/png-text-append.c的示例也很有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44489503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档