O elemento canvas está sendo atualizado no Chrome 50: agora ele oferece suporte ao método toBlob()
. Essa é uma ótima notícia para quem gera imagens no lado do cliente e quer fazer o upload delas para o servidor ou armazená-las no IndexedDB para uso futuro.
function sendImageToServer (canvas, url) {
function onBlob (blob) {
var request = new XMLHttpRequest();
request.open('POST', url);
request.onload = function (evt) {
// Blob sent to server.
}
request.send(blob);
}
canvas.toBlob(onBlob);
}
O uso de toBlob()
é ótimo porque, em vez de manipular uma string codificada em base64 gerada por toDataURL()
, agora você pode trabalhar diretamente com os dados binários codificados. Ele é menor e tende a se encaixar em mais casos de uso do que um URI de dados.
Se você está se perguntando se é possível desenhar blobs de imagem em outro contexto de tela, a resposta é sim, no Firefox e no Chrome. Você pode fazer isso com a API createImageBitmap()
, que também está disponível no Chrome 50.