Я пытаюсь извлечь информацию о подписи к фотографии IPTC из файла JPEG, используя Javascript.(Я знаю, что могу сделать это на стороне сервера, но я специально ищу решение 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;
}
Итак, позвольте мне теперь немного изменить свой вопрос.Как улучшить вышеуказанную функцию?