Как пользоваться
- Вставьте строку Base64 или URI data:image/bmp;base64. Также принимаются PNG, JPEG, WebP и другие форматы.
- Проверьте предпросмотр, размеры и размер после декодирования.
- Формат BMP уже выбран в списке «Скачать как». Если данные уже представляют собой BMP и нужны без изменений, выберите вместо него «Оригинал».
- Скачайте файл .bmp.
Как распознать BMP в Base64
Файлы растровых изображений Windows начинаются с двух букв BM, которые кодируются в Qk в самом начале строки Base64. В следующем за ними заголовке хранятся размер файла, смещение пиксельных данных, размеры изображения и глубина цвета. Данные BMP встречаются в старых приложениях Windows, при экспорте из буфера обмена и скриншотов, в кассовых и промышленных системах, в инструментах для дисплеев микроконтроллеров и в тестовых данных. Тип MIME обычно image/bmp, хотя встречается и image/x-ms-bmp.
Браузеры показывают распространённые варианты BMP, но очень старые растровые изображения OS/2 и редкие режимы сжатия отображаются не во всех браузерах. Если предпросмотр остаётся пустым, хотя строка начинается с Qk, скачайте файл в варианте «Оригинал» и откройте его в настольной программе просмотра изображений.
Почему файлы BMP такие большие
Конвертер записывает несжатые 32-битные пиксели, по четыре байта на каждый пиксель, поэтому размер файла зависит только от размеров изображения, а не от его содержимого:
| Размеры | Размер BMP | В виде Base64 |
|---|---|---|
| 640 × 480 | около 1,2 МБ | около 1,6 МБ |
| 1920 × 1080 | около 8,3 МБ | около 11 МБ |
| 3840 × 2160 | около 33 МБ | около 44 МБ |
Тот же скриншот в формате PNG часто в десять раз меньше. Используйте BMP, только если этого требует принимающая программа.
О 32-битном результате
Результат сохраняет альфа-канал, поэтому прозрачные области остаются прозрачными в программах, которые его читают. Некоторые старые программы игнорируют альфа-канал и могут показывать такие области чёрными или белыми. В этом случае уберите прозрачность из исходного изображения перед преобразованием.
Чтобы декодировать BMP из Base64 в Windows без браузера, достаточно PowerShell:
$b64 = Get-Content .\image.txt -Raw
[IO.File]::WriteAllBytes("$PWD\image.bmp", [Convert]::FromBase64String($b64))
Часто задаваемые вопросы
Почему BMP намного больше исходного файла?
BMP сохраняется без сжатия и занимает четыре байта на пиксель. Сжатый PNG или JPEG того же изображения обычно гораздо меньше.
Поддерживает ли BMP прозрачность?
Да, 32-битные файлы BMP, которые создаёт этот инструмент, содержат альфа-канал. Отображается ли прозрачность, зависит от программы, в которой открыт файл.
Как понять, что строка Base64 содержит BMP?
Qk — так выглядят буквы BM в Base64. Инструмент подтверждает формат, читая байты заголовка.