Если я конвертирую изображение (jpg или png) в base64, то оно будет больше или оно будет иметь одинаковый размер? Насколько это будет больше?
Рекомендуется ли использовать кодированные изображения base64 на моем веб-сайте?
Если я конвертирую изображение (jpg или png) в base64, то оно будет больше или оно будет иметь одинаковый размер? Насколько это будет больше?
Рекомендуется ли использовать кодированные изображения base64 на моем веб-сайте?
Он будет примерно на 37% больше:
Очень грубо, конечный размер двоичных данных с кодировкой Base64 равен 1,37 раза по сравнению с исходным размером данных
Источник: http://en.wikipedia.org/wiki/Base64
Здесь действительно полезный обзор того, когда кодировать base64 и когда не от Дэвида Калхауна.
Основной ответ= gzipped base64 закодированные файлы будут примерно сопоставимы по размеру файла со стандартным двоичным (jpg/png). Бинарные файлы Gzip'd будут иметь меньший размер файла.
Takeaway= Есть некоторые преимущества для кодирования и gzipping ваших значков пользовательского интерфейса и т.д., но неразумно делать это для больших изображений.
Он будет больше в base64.
Base64 использует 6 бит на каждый байт для кодирования данных, тогда как двоичный код использует 8 бит на байт. Кроме того, на Base64 имеется небольшая надбавка. Не все биты используются с Base64, поскольку он был разработан, в первую очередь, для кодирования двоичных данных в системах, которые могут корректно обрабатывать не двоичные данные.
Это означает, что кодированное изображение будет примерно на 25% больше, плюс постоянные накладные расходы для заполнения.
Кодирование изображения на base64 сделает его примерно на 30% больше.
См. подробности в статье wikipedia о схеме URI данных, где указано:
URI с кодировкой Base64 имеют размер на 1/3 больше, чем их двоичный эквивалент. (Однако эти служебные данные сокращаются до 2-3%, если HTTP-сервер сжимает ответ с помощью gzip)
Размер base64-изображений
Base64 использует 64 разных символа, и это 2 ^ 6. Таким образом, base64 хранит 6 бит на 8-битный символ. Таким образом, доля составляет 6/8 от необработанных данных до данных base64. Это не точный расчет, а приблизительная оценка.
Пример:
Для изображения размером 48 КБ требуется около 64 кб в качестве изображения с преобразованием base64.
Расчет: (48/6) * 8 = 64
Простой калькулятор CLI для Linux-систем:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
Или используя изображение:
$ cat my.png|base64|wc -c
base64-изображения и веб-сайты
Этот вопрос гораздо сложнее ответить. Вообще говоря, чем больше изображение, тем меньше смысла используется base64. Но рассмотрим следующие моменты:
Итак, ответ: это зависит.
Это будет стоить вам больше места и пропускной способности, если вы хотите использовать изображения с кодировкой base64. Однако, если на вашем сайте много мелких изображений, вы можете уменьшить время загрузки страницы, закодировав изображения на base64 и разместив их в html. Таким образом, браузеру клиента не нужно будет делать много подключений к изображениям, но будет иметь их в html.