Растровое изображение BMP (.bmp)

Архитектура Стандарт

Bitmap Image File (BMP) - это основной формат независимой от устройства растровой графики от Microsoft, хранящий несжатые строки развертки или строки с RLE-сжатием, с прямой совместимостью с аппаратным буфером кадра.

Конвертировать из BMP в PNG

Бесплатный конвертер из BMP в PNG прямо в браузере. Конвертируйте файлы мгновенно на вашем устройстве.

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы BMP по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

100% конфиденциальное преобразование в браузере - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполняется локально в песочнице вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы BMP по начальной двоичной последовательности байтов:

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

42 4D

ПРЕДСТАВЛЕНИЕ ASCII: BM

Стандартизация: Архитектура независимых от устройства растровых изображений (DIB) Microsoft Windows

Технические спецификации

Архитектура контейнераЗаголовок BITMAPFILEHEADER, за которым следуют BITMAPINFOHEADER (DIB) и массив растровых пикселей
СжатиеНесжатые строки развертки или дополнительное кодирование длин серий BI_RLE8 / BI_RLE4
Порядок байтов (Endianness)С обратным порядком байтов (порядок байтов Intel x86)
Цветовые пространстваЦветовое пространство RGB, зависящее от устройства, sRGB (внедренный заголовок BITMAPV5HEADER)
Каналы и структура1-битный монохромный, 4-битный / 8-битный с палитрой, 16-битный, 24-битный RGB или 32-битный RGBA
Макс. габариты2 147 483 647 x 2 147 483 647 пикселей (знаковое 32-битное целое число)
ПрозрачностьАльфа-маска 32-bit BGRA поддерживается в современных форматах BITMAPV3HEADER и V5HEADER
Потоковая передача и прогрессивная загрузкаНепотоковый формат; строки развертки хранятся в перевернутом виде (снизу вверх), если высота не отрицательная

Техническая матрица сравнения: BMP против конкурентов

Технический атрибутBMP (Текущий)PNGTIFFJPG
Режим сжатияБез сжатия / минимальное RLEСжатие Deflate без потерь (на ~70% меньше)Без сжатия / LZW / ZipС потерями DCT (на ~90% меньше)
Скорость декодированияМгновенное копирование памятиТребуется декомпрессия DeflateТребуется декомпрессия LZW/ZIPТребуется расчет IDCT
Порядок строк разверткиСнизу вверх (инвертированный)Сверху внизСверху вниз / полосыБлоки MCU сверху вниз
Пригодность для вебОчень низкая (раздутый объем данных)Отлично подходит для графикиНизкая (настольные издательские системы)Отлично подходит для фотографий

Типичные режимы повреждения и руководство по восстановлению в HEX

Изображение отображается скошенным по диагонали или наклоненным под углом.

Первопричина: Неправильный расчет выравнивания строк (ошибка заполнения каждой строки развертки до 4-байтовой границы).

Восстановление: Перекодируйте файл с помощью File2File Image Converter, чтобы восстановить правильный 32-битный шаг строки развертки.

Анализ безопасности и векторы атак на парсер

Декодеры BMP часто страдают от чтения за пределами буфера при выделении памяти на основе ненадежных размеров из заголовка DIB.

Известные векторы атак

  • Переполнение целых чисел при вычислении ширина * высота * глубина цвета (bpp), приводящее к выделению маленького блока в куче и записи за пределы буфера.
  • Поврежденные последовательности длин серий RLE8/RLE4, вызывающие запись в память за пределами выделенного буфера.
  • Отказ в обслуживании за счет выделения многогигабайтных объемов памяти, инициированного специально измененными размерами в заголовке.

Защитные лучшие практики: Строго проверяйте ширину, высоту и глубину цвета в заголовке DIB перед выделением целевой памяти.

Исторические истоки и вехи

1998Windows 98 представляет BITMAPV5HEADER, добавляя управление цветовыми профилями ICC и гамма-коррекцию.
1990Windows 3.0 стандартизирует спецификацию DIB BITMAPINFOHEADER во всей операционной системе.
1987Представлен в составе Windows 2.0 и OS/2 1.1 в качестве родного растрового формата отображения.

Ключевые преимущества и плюсы

  • Нулевое ухудшение от сжатия: 100% точное побитовое хранение пикселей без артефактов сжатия.
  • Универсальная нативная поддержка операционной системы во всех версиях Windows, Linux и macOS.
  • Элементарная сложность декодирования делает формат идеальным для встраиваемых микроконтроллеров и обучения программированию графики.

Технические ограничения и минусы

  • Огромный размер файлов из-за отсутствия современного энтропийного сжатия, такого как DEFLATE или кодирование Хаффмана.
  • Неэффективность для веб-передачи или распространения через мобильные сети.
  • Порядок строк развертки снизу вверх требует вертикального инвертирования строк в современных конвейерах графического рендеринга сверху вниз.

Интересные технические факты

  • BMP хранит строки развертки изображения вверх тормашками (снизу вверх) по умолчанию из-за математической декартовой системы координат, используемой в OS/2.
  • Если значение высоты в заголовке BMP установлено в отрицательное число, изображение декодируется правильно (сверху вниз).
  • Каждая строка развертки в файле BMP должна быть выровнена нулями до числа байт, кратного 4 (выравнивание по 32-битной границе).

Часто задаваемые технические вопросы

Почему файлы BMP такие большие?

Файлы BMP сохраняют сырые, несжатые значения цветов для каждого отдельного пикселя, в то время как такие форматы, как PNG, сжимают эти данные без потери качества.

Поддерживает ли BMP прозрачность?

Да. 32-битные файлы BMP (использующие BITMAPV3HEADER или новее) могут хранить 8-битный альфа-канал, хотя поддержка различается в старых программах.

Как уменьшить размер файла BMP?

Конвертация файла BMP в PNG с помощью File2File.app обычно уменьшает размер файла на 60% - 85% без каких-либо потерь в визуальном качестве.