عنصر canvas از Chrome 50 در حال ارتقا است: اکنون از روش toBlob()
پشتیبانی می کند! این یک خبر عالی برای هر کسی است که تصاویری را در سمت کلاینت تولید میکند و میخواهد - مثلاً - آنها را در سرور خود آپلود کند، یا آنها را در IndexedDB برای استفاده در آینده ذخیره کند.
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);
}
استفاده از toBlob()
عالی است، زیرا به جای دستکاری رشته کدگذاری شده base64 که از toDataURL()
دریافت می کنید، اکنون می توانید مستقیماً با داده های باینری کدگذاری شده کار کنید. کوچکتر است و بیشتر از URI داده با موارد استفاده مناسب است.
اگر نمیدانید که آیا میتوانید حبابهای تصویر را به بافت بوم دیگری بکشید، پاسخ این است -- در فایرفاکس و کروم -- بله، کاملاً! میتوانید این کار را با createImageBitmap()
API انجام دهید ، که در Chrome 50 نیز فرود میآید.