我正在尝试使用 Javascript 从 JPEG 文件中提取 IPTC 照片标题信息。(我知道我可以在服务器端执行此操作,但我正在专门寻找 Javascript 解决方案。)
我找到了这个脚本,它提取 EXIF 信息……但我不确定如何调整它来获取 IPTC 数据。
是否有提供此类功能的现有脚本?如果不是,您将如何修改 EXIF 脚本以解析 IPTC 数据?
更新
我已经修改了上面链接的 EXIF 脚本。它可以满足我的要求,但它并没有 100% 地获取正确的数据。
在第 401 行之后,我添加了:
else if (iMarker == 237) {
// 0xED = Application-specific 13 (Photoshop IPTC)
if (bDebug) log("Found 0xFFED marker");
return readIPTCData(oFile, iOffset + 4, getShortAt(oFile, iOffset+2, true)-2);
}
然后在脚本的其他地方,我添加了这个函数:
function readIPTCData(oFile, iStart, iLength) {
exif = new Array();
if (getStringAt(oFile, iStart, 9) != "Photoshop") {
if (bDebug) log("Not valid Photoshop data! " + getStringAt(oFile, iStart, 9));
return false;
}
var output = '';
var count = 0;
two = new Array();
for (i=0; i<iLength; i++) {
if (getByteAt(oFile, iStart + i) == 2 && getByteAt(oFile, iStart + i + 1) == 120) {
var caption = getString2At(oFile, iStart + i + 2, 800);
}
if (getByteAt(oFile, iStart + i) == 2 && getByteAt(oFile, iStart + i + 1) == 80) {
var credit = getString2At(oFile, iStart + i + 2, 300);
}
}
exif['ImageDescription'] = caption;
exif['Artist'] = credit;
return exif;
}
所以现在让我稍微修改一下我的问题。上面的功能如何改进?