PDA

View Full Version : [Javascript] Conversione immagine base64 da altro dominio


kwb
03-07-2014, 16:23
Sto cercando di convertire un'immagine presa tramite js AJAX ( con jQuery ) da un altro dominio in base64.
Utilizzo questa tecnica che pare essere l'unica possibile, trovata su StackOverflow:

function convertImgToBase64(url, callback, outputFormat){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function(){
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img,0,0);
var dataURL = canvas.toDataURL(outputFormat || 'image/png');
console.log(dataURL);
callback.call(this, dataURL);
canvas = null;
};
img.src = url;
}

convertImgToBase64(miaImgDaAltroDominio,function(data){
var base64 = data.split('base64'); //Il codice si trova su base64[1]
});


Ora questo codice è stato testato in locale ( con immagini che arrivano dallo stesso dominio ) e funziona perfettamente.
Il problema sorge quando le immagini arrivano da un altro dominio: infatti dopo l'istruzione

img.src = url; //url contiene il link all'immagine!

Stampando img.src con console.log mi ritrovo il link nel seguente formato:
indirizzo_del_dominio_corrente+url
Per esempio, se mi trovo su esempio1.com/pagina/p1.php e faccio partire lo script per recuperare l'immagine che si trova su esempio2.com/imgs/immagine.png
Il mio img.src risulterà uguale a: esempio1.com/pagina/esempio2.com/imgs/immagine.png

C'è modo di ovviare a questo problema??

Daniels118
04-07-2014, 14:07
Prova a specificare il protocollo nell'url, es: http://esempio2.com/imgs/immagine.png

kwb
04-07-2014, 15:04
Prova a specificare il protocollo nell'url, es: http://esempio2.com/imgs/immagine.png

Leggendario!!! :eek: :eek:
Ho fatto un rapido controllo e pare funzionare... :cool:

Daniels118
04-07-2014, 15:39
Leggendario!!! :eek: :eek:
Ho fatto un rapido controllo e pare funzionare... :cool:
Ehhhhh, e che sarà mai! :asd: