Sto utilizzando HTML Canvas
per ottenere colori dall'immagine. Per questo ho scritto il seguente codice in javascript:Impossibile ottenere i dati dell'immagine dal canvas perché il canvas è stato macchiato dai dati di origine incrociata
http://jsfiddle.net/8dQSS/1/ (Controllo di Pls la console per vedere l'eccezione)
function getImageColor() {
var colors = [];
var image = new Image();
image.onload = function() {
var canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
// Draw the image in canvas
var ctx = canvas.getContext("2d");
ctx.drawImage(image, 0, 0);
// Get the pixel data
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
// Loop through imageData.data - an array with 4 values per pixel: red, green, blue, and alpha
for (var x = 0; x < imageData.width; x++) {
for (var y = 0; y < imageData.height; y++) {
var index = 4 * (y * imageData.width + x);
var r = imageData.data[index];
var g = imageData.data[index + 1];
var b = imageData.data[index + 2];
var a = imageData.data[index + 3];
colors.push("rgb(" + r + "," + g + "," + b + ")");
}
}
};
image.src = "http://www.xxxxxxxxxxxx.com/demos/assets/image.jpg";
}
Il codice di cui sopra sta gettando la seguente eccezione:
Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
Uncaught Error: SECURITY_ERR: DOM Exception 18
Can
nessuno per favore dimmi come risolvere questo problema?
Non utilizzare le immagini da altri domini, il cui contenuto non è consentito per accedere? – Bergi
Forse aiuterà a diagnosticare (è un vecchio post): ho questo errore da una tela mi sono generato da un URI di dati creato da un elemento SVG, senza immagini. Funziona su FF e Safari bene. – LeeGee
L'immagine viene creata da un'immagine creata in modo dinamico con JavaScript da un elemento SVG e passata come URI di dati. È un problema, quindi: "Uncaught SecurityError: è stato effettuato un tentativo di superare la politica di sicurezza dell'agente utente". Chrome sta cercando di essere troppo intelligente? – LeeGee