Когда я загружаю определенный файл в свой браузер, файл имеет тип jpeg и размер файла составляет 2 МБ, но когда я кодирую свой файл в base64 с помощью canvas.toDataURL()
, размер полученного файла составляет около 9 МБ.
Почему файл в кодировке base64 в 3-4 раза больше исходного файла?
Я видел, что могу указать параметр для toDataURl(type, quality)
, но я не могу использовать его для файла png, только для jpeg, и я хочу png.
2^8 == 256
), а символ в кодировке Base64 может содержать только 6 бит (2^6 == 64
). Яркий пример:btoa('hi there my friend... ;)').length
(32) против'hi there my friend... ;)'.length
(24). Проблема в том, что вы начали с файла jpeg и перешли к png. Jpeg имеет сжатие с потерями, а png — без потерь (это 1/4 размера необработанного файла BMP). - person Pluto   schedule 24.02.2015