我正在尝试使用Javascript从JPEG文件中提取IPTC图片标题信息。 (我知道我可以在服务器端执行此操作,但是我正在专门寻找Javascript解决方案。)
我发现了this script,它提取了EXIF信息...但是我不确定如何适应它以获取IPTC数据。
是否有提供这种功能的现有脚本?如果没有,您将如何修改EXIF脚本以解析IPTC数据?
UPDATE
我已经修改了上面链接的EXIF脚本。它sorta可以满足我的要求,但是并不能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; }
所以现在让我稍微修改一下我的问题。上面的功能如何改进?
我正在尝试使用Javascript从JPEG文件中提取IPTC图片标题信息。 (我知道我可以在服务器端执行此操作,但是我正在专门寻找Javascript解决方案。)我发现了这个...
关于它的价值,我对此进行了推断...我还没有做很多测试,但是我似乎可以使用的一些测试图像。
好吧,如果您找不到已经执行此操作的库,这将使您继续创建自己的JavaScript解析器。
我想建议在Node.js和浏览器中都可以使用的库exifr。并且它还支持新的HEIC图像格式。