यदि आप स्थानीय स्तर पर एक त्वरित कोड विकसित कर रहे हैं, और आप क्रोम का उपयोग कर रहे हैं, तो एक समस्या है। यदि आपका पृष्ठ फ़ॉर्म "फ़ाइल: // xxxx" के URL का उपयोग करके लोड करता है, तो कैनवास पर getImageData () का उपयोग करने का प्रयास विफल हो जाएगा, और क्रॉस-ऑरिजनल सुरक्षा त्रुटि को फेंक देगा, भले ही आपकी छवि उसी से प्राप्त हो रही हो। एचटीएमएल पेज को कैनवास प्रदान करते हुए अपने स्थानीय मशीन पर निर्देशिका। इसलिए यदि आपका HTML पृष्ठ कहा से आया है:
file: // डी: /wwwroot/mydir/mytestpage.html
और आपकी जावास्क्रिप्ट फ़ाइल और छवियों को कहा से लाया जा रहा है:
file: // डी: /wwwroot/mydir/mycode.js
file: // डी: /wwwroot/mydir/myImage.png
तब इस तथ्य के बावजूद कि इन माध्यमिक संस्थाओं को एक ही मूल से प्राप्त किया जा रहा है, सुरक्षा त्रुटि अभी भी फेंक दी गई है।
किसी कारण से, मूल को ठीक से सेट करने के बजाय, क्रोम अपेक्षित संस्थाओं की मूल विशेषता को "शून्य" करने के लिए सेट करता है, इसे getImageData () में अपने ब्राउज़र में HTML पेज खोलने और स्थानीय रूप से डीबगिंग करके परीक्षण कोड को असंभव बनाना प्रदान करता है।
इसके अलावा, छवि के क्रॉसऑरिजिन संपत्ति को "अनाम" पर सेट करने से काम नहीं होता है, इसी कारण से।
मैं अभी भी इसके लिए वर्कअराउंड ढूंढने का प्रयास कर रहा हूं, लेकिन एक बार फिर, ऐसा लगता है कि ब्राउज़र डिबगर्स द्वारा स्थानीय डिबगिंग को यथासंभव दर्दनाक रूप दिया जा रहा है।
मैंने फ़ायरफ़ॉक्स में अपना कोड चलाने की कोशिश की, और फ़ायरफ़ॉक्स को यह सही है, यह पहचान कर कि मेरी छवि HTML और जेएस स्क्रिप्ट के समान मूल से है। इसलिए मैं कुछ संकेतों का स्वागत करता हूं कि क्रोम में समस्या को कैसे प्राप्त किया जाए, जैसे कि फ़ायरफ़ॉक्स काम करता है, यह डिबगर बहुत धीमी गति से है, सेवा हमले के इनकार से हटाए गए एक कदम के बिंदु तक।