Estoy tratando de extraer información de subtítulos de IPTC desde un archivo JPEG usando Javascript. (Sé que puedo hacer esto desde el servidor, pero estoy buscando específicamente una solución de Javascript.)Extraiga información de IPTC de JPEG usando Javascript
Encontré this script, que extrae información EXIF ... pero no estoy seguro de cómo adaptarla para tomar Datos de IPTC
¿Hay scripts existentes que ofrezcan dicha funcionalidad? De lo contrario, ¿cómo modificaría el script EXIF para analizar también los datos IPTC?
ACTUALIZACIÓN
He modificado el guión EXIF he vinculado anteriormente. Es sorta hace lo que quiero, pero no está tomando los datos correctos el 100 por ciento del tiempo.
Después de la línea 401, que añade:
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);
}
Y luego en el resto del guión, añade esta función:
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;
}
Así que ahora me modifico mi pregunta ligeramente. ¿Cómo se puede mejorar la función anterior?
Esto solo será posible en los navegadores compatibles con las nuevas API de archivos HTML5. La secuencia de comandos que ha vinculado * aparece * para obtener datos de imagen al obtenerlos del servidor, que probablemente no es lo que quiere hacer. – Pointy
Sí, está perfectamente bien. Estoy desarrollando esto solo para uso interno, y todos tenemos los últimos navegadores, por lo que no es un problema. – jawns317
Esto no funciona para mí. ¿Tienes un ejemplo jsfiddle? –