使用javascript

时间:2018-09-28 06:04:51

标签: javascript png metadata

我想在PNG中插入UTF-8注释。上下文位于现代浏览器中:导出-canvas-,并在用户下载之前将一些元数据添加到PNG中,然后导入并读取元数据。

PNG specs for metadata, says about iTXt

我看到了一个good answer here on SO的相关信息,其中包含实现tEXt块的所有步骤,但没有代码。

我发现了一个简单的nodejs库node-png-metadata,用于管理PNG元数据。

有了这些资源,我成功地完成了一些技巧,例如插入一个块并读取它,但这似乎不是有效的iTXt块(与tEXt块相同),因为诸如pngchunks或pnginfo之类的工具无法理解它。

观看此working fiddle进行播放,导入PNG会添加元数据并显示它!用tEXt或iTXt块进行测试

在第21行附近,围绕块的创建进行了一些测试

var txt = {
  sample: '@à$'
};

var newchunk = metadata.createChunk("tEXt", "Comment"+String.fromCharCode(0x00)+"heremycommentl"); // works but not conform
var newchunk = metadata.createChunk("TEXt", "Comment"+String.fromCharCode(0x00)+"heremycommentl"); // result invalid png
var newchunk = metadata.createChunk("iTXt", "Source"+String.fromCharCode(0x00)+"00fr"+String.fromCharCode(0x00)+"Source"+String.fromCharCode(0x00)+""+JSON.stringify(txt));// works but not conform

如果块类型名称first char为大写,则在结果PNG旁边损坏? TEXt

如果您有一些可以分享的知识,欢迎您

0 个答案:

没有答案