Можно ли узнать размер изображения в байтах, созданного с помощью convas?
Всем привет! Можно ли как-нибудь узнать размер изображения в байтах, созданное с помощью canvas?
Например: я создал смайлик, надо определить размер этого смайлика в байтах.
В канве нарисовано изображение как есть, в bitmap, без сжатий (Png/jpg и прочего). Поэтому смело используйте формулу
ширина*высота*4
где 4 - это RGBA
Ну или можно получить из toDataURL("image/png") и узнать там размер
var offset = "data:image/png;base64,".length;
canv.toDataURL("image/png").length - offset
не уверен, что размер будет точным.
Можно еще так https://codepen.io/jdeagle/pen/rhDkc там функция dataURLtoBlob, в нее подсовываете результат toDataURL, а она в свою очередь возвращает бинарные данные в виде объекта Blob, у которого есть свойство size - размер.
rinaz22, в примере смотрите переменные size - размер в байтах, sizeKB - размер в килобайтах и sizeMB размер в мегабайтах.
Как сохранить на сервер не скажу, вопрос по JS.
Владимир Проскурин, спасибо! Еще один вопрос. Изображение же создается при помощи мощностей устройства пользователя(т.к. работает через JS) или я ошибаюсь? Если да, то по мне так размер должен быть разным, т.к. у каждого разное устройство?