Canvas.toBlob: новая функция для Canvas в Google Chrome 50 и Firefox

Элемент canvas получает обновление с выходом Chrome 50: теперь он поддерживает метод toBlob ().

Это отличная новость для тех, кто создает изображения на стороне клиента, загружает их на свой сервер или сохраняет в IndexedDB для будущего использования.

С помощью toBlob() это большое обновление, потому что вместо манипулирования строкой в ​​кодировке base64, которую вы получаете toDataURL()Теперь вы можете работать с закодированными двоичными данными напрямую. Он меньше и «имеет тенденцию соответствовать большему количеству вариантов использования», чем URI данных.

Вы можете отрисовывать большие изображения в другой контекст холста, используя API createImageBitmap, который также подходит для Chrome 50.

Как пользоваться

toBlob Метод является асинхронным, поэтому ожидает функцию в качестве первого параметра. Эта функция получает в качестве первого параметра элемент blob:


function imageToServer(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);
}
window.onload = function(){
document.getElementById("send").addEventListener("click",function(){
var canvas = document.getElementById("canvas");
imageToServer(canvas,"/a-service-to-process-the-image");
},false);
};

Предыдущий код сгенерирует большой двоичный объект изображения, который будет отправлен в службу URL, которая будет обрабатывать большой двоичный объект.

Важное замечание: Вы можете протестировать эту функцию с Chrome Canary, поскольку последняя версия Chrome — 49 до даты, и эта функция будет доступна только для Chrome 50.

Ссылка на основную публикацию
Adblock
detector