.
如何从Windows上的文件读取/写入这些标签?
我试图在javascript和node.js中实现它,但是根本找不到任何语言的信息,所以我正在寻找任何线索。
.
遗憾的是,单词标签(有时称为关键字)似乎被选中,因为它似乎通常描述文件的任何元数据,例如EXIF。然而,在Windows中,您可以将这些描述性标记保存为文件标记之一。首先 - 关于它们如何真正被称为的任何想法?
我知道你可以使用各种程序修改它们,例如。在Adobe Bridge中,它们被称为文件的关键字。
.
注意:我确实认识到这不是存储文件标签的最佳解决方案。我真的只需要使用这些,因为我正在使用的图像库正在大量使用它们。
[Edit.1]
@Ben Fortune:谢谢你的线索!尽管如此,Exif-parser提供了一种阅读这些标签的方法,但不允许写作。
答案是:
String.fromCharCode()
并循环遍历返回的整数我设法将标记作为字符串。function run_cmd(cmd, args, callBack ) {
var spawn = require('child_process').spawn;
var child = spawn(cmd, args);
var resp = "";
child.stdout.on('data', function (buffer) { resp += buffer.toString() });
child.stdout.on('end', function() { callBack (resp) });
} // ()
执行exiftool作为shell命令(More on spawning shell command).
为了阅读我正在经过
run_cmd('exiftool', ['-XPKeywords', myFilepath])
阅读XPKeywords标签和
theShellResult.match(/:(.*)/)
过滤掉关键字(Nicely explained here)。
.
为了编写(附加)新的XPKeywords我只是将args更改为:
var writeArg = "-XPKeywords<$XPKeywords " + myNewKeywords
run_cmd('exiftool', [writeArg, myFilepath])
.
我找到了解决方法,但我知道它不是通过shell命令执行的。因此,问题仍然存在 - 您是否可以建议在node.js中读取和编写EXIF标记的界面?
我不想调用外部命令。您可以使用名为node-ipct的节点模块。该模块提取包括XPKeywords在内的ipct信息。