È possibile utilizzare canvas.toDataURL()
in Adobe AIR?Come usare canvas.toDataURL() per ottenere base64 dell'immagine in Adobe AIR?
Quando provo ottengo il seguente errore:
Error: SECURITY_ERR: DOM Exception 18
È possibile utilizzare canvas.toDataURL()
in Adobe AIR?Come usare canvas.toDataURL() per ottenere base64 dell'immagine in Adobe AIR?
Quando provo ottengo il seguente errore:
Error: SECURITY_ERR: DOM Exception 18
Adobe AIR applica stessa origine per le immagini utilizzate nelle API tela. Una volta che hai usato qualcosa da un altro dominio nella tua tela, non puoi recuperare i dati dai pixel. Tuttavia, è possibile utilizzare la classe Loader per ottenere i dati dei pixel e convertirli in un ImageData su tela.
Ad esempio:
function getDataURL(url, callback) {
var loader = new air.Loader();
loader.contentLoaderInfo.addEventListener(air.Event.COMPLETE, function(event) {
var bitmapData = loader.content.bitmapData;
var canvas = document.createElement('canvas');
canvas.width = bitmapData.width;
canvas.height = bitmapData.height;
var context = canvas.getContext('2d');
var imageData = context.createImageData(canvas.width, canvas.height);
var dst = imageData.data;
var src = bitmapData.getPixels(bitmapData.rect);
src.position = 0;
var i = 0;
while (i < dst.length) {
var alpha = src.readUnsignedByte();
dst[i++] = src.readUnsignedByte();
dst[i++] = src.readUnsignedByte();
dst[i++] = src.readUnsignedByte();
dst[i++] = alpha;
}
context.putImageData(imageData, 0, 0);
callback(canvas.toDataURL());
});
loader.load(new air.URLRequest(url));
}
window.addEventListener('load', function() {
getDataURL('http://www.google.com/images/logo.gif', function(dataURL) {
air.trace(dataURL);
});
}, false);
Ho provato questo codice e ottengo un errore TypeE: il valore undefined non consente le chiamate di funzione. ?? – user899641
@ user899641 Ciò era dovuto a 'trace' invece di' air.trace' - Ho modificato la risposta. –
spiegare per favore, che cosa vuoi da questo? forse sarà meglio mettere questa tela in un altro contenitore, che potrai collegare? – Eugene
caricare un'immagine, tagliare una parte dell'immagine e quindi salvare l'immagine dalla tela in un file, database o server – kefi
ok ho scoperto perché ottengo SECURITY_ERR http://www.whatwg.org/specs/web- app/current-work/multipage/the-canvas-element.html # security-with-canvas-elements esiste un modo per ridimensionare l'immagine localmente prima di inviarla al webserver usando JS o qualche libreria sfw per JS? – kefi