Windows Bitmap (.bmp)

Microsoft Стандарт

Bitmap Image File (BMP) е основният независим от устройството растров графичен формат на Microsoft, който съхранява некомпресирани или компресирани по метода RLE редове с директна съвместимост с хардуерния фреймбуфер.

Конвертиране на BMP към PNG

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

Инспектиране и метаданни

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

Изберете или пуснете файлове тук

100% поверително конвертиране в браузъра - файловете никога не напускат вашето устройство

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на хедъра (Magic Bytes)

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

HEX ПОДПИС (ОФСЕТ 0):

42 4D

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

Стандартизация: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

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

Контейнерна архитектураBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
КомпресияUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Поредност на байтовете (Endianness)Little-Endian (Intel x86 byte order)
Цветови пространстваDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Канали и структура1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Максимални размери2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Прозрачност32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Стрийминг и прогресивно зарежданеNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

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

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

Често срещани режими на повреда и ръководство за хекс възстановяване

Изображението се рендира наклонено по диагонал или изкривено под ъгъл.

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

Възстановяване: Прекодирайте с помощта на File2File Image Converter, за да наложите правилен 32-битов ред на стъпката.

Анализ на сигурността и вектори на атака към парсера

BMP декодерите често страдат от четене извън буфера при разпределение на паметта въз основа на недоверени размери в DIB заглавната част.

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

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

Защитни добри практики:

Исторически произход и етапи

1998Windows 98 представя BITMAPV5HEADER, добавяйки управление на цветови профили ICC и корекция на гамата.
1990Windows 3.0 стандартизира спецификацията BITMAPINFOHEADER DIB в цялата операционна система.
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% при нулева загуба на визуално качество.