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;
}
それでは、私の質問を少し修正させてください。上記の機能をどのように改善できますか?