使用Javascript从JPEG提取IPTC信息

问题描述 投票:11回答:3

我正在尝试使用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 image-processing exif iptc
3个回答
6
投票

关于它的价值,我对此进行了推断...我还没有做很多测试,但是我似乎可以使用的一些测试图像。


0
投票

好吧,如果您找不到已经执行此操作的库,这将使您继续创建自己的JavaScript解析器。


0
投票

我想建议在Node.js和浏览器中都可以使用的库exifr。并且它还支持新的HEIC图像格式。

© www.soinside.com 2019 - 2024. All rights reserved.