Предвестник: Я знаю, что было задано несколько вопросов об этой теме, но ни один из них, похоже, не предлагает прямое решение только для JavaScript.getImageData ошибка кросс-оригинала
Так что я побежал в эту ошибку, когда я пытаюсь получить данные пикселей из холста, используя нечто вроде context.getImageData()
, мой точный код можно было увидеть here или ниже:
<canvas id="imageCanvas" width="600" height="800"></canvas>
// Load Image
var canvas = document.getElementById('imageCanvas');
var image = new Image();
image.src = 'http://emoticons.pw/emoticons/emoticon-faces-002-medium.png';
image.onload = function() {
width=image.width;
height=image.height;
var context = canvas.getContext('2d');
context.fillStyle="#024359"; // canvas background color
context.fillRect(0, 0, width, height);
context.drawImage(this,0,0);
imageData = context.getImageData(0,0,width, height); // PROBLEM HERE
context.putImageData(imageData, 0, 0);
}
I получите следующие ошибки в Chrome:
Невозможно получить данные изображения с холста, так как холст был t а также данные, полученные с помощью перекрестного происхождения.
, а затем ошибка безопасности. Я не хочу делать изменения в сервере или запускать хром с необычной инструкцией. Я чувствую, что в JavaScript есть что-то, что я могу сделать.
Использование только локальных изображений не является проблемой, но при попытке этого я получил ту же ошибку!
Я пытаюсь сделать это без сервера, если я поместил это на свой «по умолчанию» веб-сервер godaddy, все мои проблемы решены? Я слышал, слухи, что Dropbox может также достаточно симулировать сервер?
+1 ... что сказал Кен, а также положить image.onload перед тем image.src – markE
я всегда ставлю перед тем OnLoad ЦСИ просто в случае победы .src. Возникает вопрос ... будет ли загружать огонь, если src действительно выиграет гонку? – markE
@markE да, так я тоже это делаю. Если я не стал слепым, я считаю, что я тоже это делаю здесь? :) Шанс минимален, но теоретически возможен, поэтому, чтобы быть более безопасным, чем жаль, я также поставил onload перед src. – K3N