O elemento "Canvas" vai receber um upgrade a partir do Chrome 50: agora oferece suporte ao método toBlob()
. Essa é uma ótima notícia para quem está gerando imagens no lado do cliente e quer, digamos, fazer o upload delas no 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);
}
Usar toBlob()
é ótimo, porque em vez de manipular uma string codificada em base64 recebida do toDataURL()
, agora é possível trabalhar diretamente com os dados binários codificados. Ele é menor e tende a se adequar a 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 canvas, a resposta é: no Firefox e no Chrome, sim, com certeza! Você pode fazer isso com a API createImageBitmap()
, que também está disponível no Chrome 50.