का उपयोग कर जेपीईजी से आईपीटीसी जानकारी निकालें मैं जावास्क्रिप्ट का उपयोग कर जेपीईजी फ़ाइल से आईपीटीसी फोटो कैप्शन जानकारी निकालने की कोशिश कर रहा हूं। (मुझे पता है कि मैं यह सर्वर-साइड कर सकता हूं, लेकिन मैं विशेष रूप से जावास्क्रिप्ट समाधान के लिए देख रहा हूं।)जावास्क्रिप्ट
मुझे this script मिला, जो EXIF जानकारी निकालता है ... लेकिन मुझे यकीन नहीं है कि इसे कैसे अनुकूलित किया जाए आईपीटीसी डेटा।
क्या ऐसी कोई मौजूदा स्क्रिप्ट है जो ऐसी कार्यक्षमता प्रदान करती है? यदि नहीं, तो आप आईपीटीसी डेटा को पार्स करने के लिए EXIF स्क्रिप्ट को कैसे संशोधित करेंगे?
अद्यतन
मैं EXIF स्क्रिप्ट मैं ऊपर लिंक संशोधित कर लिया है। यह सॉर्टा जो चाहता है वह करता है, लेकिन यह सही डेटा को 100 प्रतिशत समय तक नहीं पकड़ रहा है।
लाइन 401 के बाद, मैं कहा:
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;
}
तो मुझे अब थोड़ा मेरे सवाल का संशोधित:
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);
}
और फिर कहीं और लिपि में, मैं इस समारोह गयी। उपरोक्त कार्य में सुधार कैसे किया जा सकता है?
यह केवल उन ब्राउज़र में संभव होगा जो नए-आईएसएच एचटीएमएल 5 फाइल एपीआई का समर्थन करते हैं। वह लिपि जो आपने लिंक की है * प्रकट होता है * इसे सर्वर से प्राप्त करके छवि डेटा प्राप्त करने के लिए, जो शायद आप नहीं करना चाहते हैं। – Pointy
हां, यह बिल्कुल ठीक है - मैं इसे केवल आंतरिक उपयोग के लिए विकसित कर रहा हूं, और हम सभी को नवीनतम ब्राउज़र मिल गए हैं, इसलिए यह कोई समस्या नहीं है। – jawns317
यह मेरे लिए काम नहीं कर रहा है। क्या आपके पास एक jsfiddle उदाहरण है? –