Я пытаюсь извлечь информацию о заголовке фотографии IPTC из файла JPEG с помощью Javascript. (Я знаю, что могу делать это на стороне сервера, но я смотрю конкретно на решение Javascript.)
Я нашел этот script, который извлекает информацию EXIF ... но я не уверен, как его адаптировать для захвата данных IPTC.
Существуют ли существующие скрипты, предлагающие такую функциональность? Если нет, как бы вы изменили EXIF script, чтобы также анализировать данные IPTC?
ОБНОВЛЕНИЕ
Я изменил EXIF script, который я связал выше. Он sortai > делает то, что я хочу, но он не захватывает правильные данные в 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);
}
И затем в другом месте в script я добавил эту функцию:
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;
}
Итак, позвольте мне сейчас немного изменить свой вопрос. Как улучшить функцию выше?