2013-05-29 11 views
5

मैं क्यों छवि कैनवास में ड्राइंग से पहले पहले से लोड होने की क्लासिक तरीका क्रोम पर एक "प्रकार त्रुटि" फायरिंग कर रहा है यह पता लगाने की कोशिश कर रहा हूँ के साथ काम नहीं करता।context.drawImage() नई छवि() उदाहरण (क्रोम)

चलो स्थिति देखें:

मैं 3 अलग अलग तरीकों से छवियों को पहले से लोड करने का प्रयास करें:

  1. एक नई छवि बनाने() उदाहरण
  2. एक छवि तत्व
  3. एक jQuery छवि बनाने बनाने ऑब्जेक्ट

या यदि आप कुछ कोड पसंद करते हैं:

var canvas1 = document.getElementById('canvas-1'), 
    context1 = canvas1.getContext('2d'), 
    image1 = new Image(), 
    canvas2 = document.getElementById('canvas-2'), 
    context2 = canvas2.getContext('2d'), 
    image2 = document.createElement('img'), 
    $canvas3 = $('#canvas-3'), 
    context3 = $canvas3.get(0).getContext('2d'), 
    $image3 = $('<img>'), 
    loadImage = function (image, context, debugIndice) { 
     debugIndice = debugIndice || -1; 
     image.onload = function() { 
      try { 
       context.drawImage(this, 0, 0, 100, 100); 
      } 
      catch (e) { 
       console.log('error for debugIndice', debugIndice, e, this); 
      } 
     } 
     image.src = "http://upload.wikimedia.org/wikipedia/commons/8/87/Google_Chrome_icon_%282011%29.png"; 
    }; 

loadImage(image1, context1, 1); 
loadImage(image2, context2, 2); 
loadImage($image3.get(0), context3, 3); 

कृपया Fiddle यहां देखें।

मेरे पास पहले लोड इमेज कॉल के लिए केवल एक प्रकार त्रुटि है।

मैं अपनी कंपनी में विंडोज पर गूगल क्रोम 27.0.1453.94 उपयोग कर रहा हूँ, और गूगल क्रोम 27.0.1453.93 मैक ओएस एक्स, दोनों x64 प्लेटफार्मों पर।

इस कोड फ़ायरफ़ॉक्स, में ठीक काम करता है और यहां तक ​​कि IE9 (मैं नहीं मजाक कर रहा हूँ, मैं इसे कसम)

किसी Chrome में इस छवि() वर्ग समस्या के बारे में जानता है?

संपादित करें: Chrome - Image bug

आप इसे वास्तविक आकार here पर देख सकते हैं: यहाँ बग का एक स्क्रीन है।

यह एक बड़ी समस्या नहीं है वैसे भी मैं jQuery तरह से उपयोग करेगा, लेकिन मैं वास्तव में कारण है क्या देखने के लिए उत्सुक हूँ, और क्यों मैं कुछ समय खोना था कि यह ठीक करने की कोशिश!

मैं इस bug पर एक नज़र ले लिया।

मैं अभी भी पूछ रहा हूँ के रूप में मुझे यकीन है कि यह एक ही है नहीं कर रहा हूँ!

+0

या तो (क्रोम 27) – devnull69

+0

Hummmm अजीब, आप लोग मुझे कह सकते हैं, जिस पर मंच आप? –

+0

पर काम कर रहे क्रोमियम पर आपकी समस्या को पुनः नहीं किया जा सका 25 और क्रोम 2 9 (देव) उबंटू 12.04 पर। क्या आपको यकीन है कि यह किसी प्रकार का कैशिंग समस्या नहीं है? – apsillers

उत्तर

1

यही नहीं वास्तव में इस के रूप में एक समाधान यहाँ एक क्रोम बग है है लेकिन उनकी ट्रैकर पर संबंधित क्रोम बग है यह एक ज्ञात समस्या है और में तय होना चाहिए - उम्मीद है कि - निकट भविष्य:। https://code.google.com/p/chromium/issues/detail?id=238071

इस बीच, document.createElement("img")new Image() के बजाय कोई "प्रकार त्रुटि" यहाँ का उपयोग करें।

+0

हाँ मैंने यह पूछने से पहले देखा, मेरे प्रश्न में "बग" लिंक देखें :) अंत में मैं jQuery से $ ('') का उपयोग कर रहा हूं! –

+0

मुझे कोई समस्या है कि छवि लोड नहीं की गई है, लेकिन ऑनलोड ईवेंट किसी भी तरह से ट्रिगर करता है, इसलिए कोई छवि नहीं खींची जाती है और एक त्रुटि होती है। – user2340939

+0

वास्तव में अजीब सोचते हैं, क्या आपकी छवि स्वयं भी द्विआधारी क्षतिग्रस्त हो सकती है? –

1

यह मुझे दर्द है कि इस काम किया है और मैं एक बेहतर जवाब की जरूरत नहीं है, लेकिन, चालू करने के बाद और सभी एक्सटेंशन बंद की कोशिश कर रहा बीटा और देव चैनल, क्या अंत में काम किया अपने कंप्यूटर रिबूट करने गया था। अब drawImage बस ठीक काम करता है। । :(

संबंधित मुद्दे