Windows Bitmap (.bmp)
Microsoft СтандартBitmap Image File (BMP) е основният независим от устройството растров графичен формат на Microsoft, който съхранява некомпресирани или компресирани по метода RLE редове с директна съвместимост с хардуерния фреймбуфер.
Конвертиране на BMP към PNG
Безплатен конвертор от BMP към PNG в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират BMP файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират BMP файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
42 4DASCII ПРЕДСТАВЯНЕ: 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 (Текущ) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Режим на компресия | Некомпресиран / Минимален RLE | Беззагубен Deflate (~70% по-малък) | Некомпресиран / LZW / Zip | Със загуба на качество DCT (~90% по-малък) |
| Скорост на декодиране | Мигновено копиране в паметта | Изисква декомпресия с Deflate | Изисква декомпресия с LZW/ZIP | Изисква IDCT изчисление |
| Подредба на редовете | Отдолу нагоре (инвертирана) | Отгоре надолу | Отгоре надолу / Ивици | Отгоре надолу MCU блокове |
| Пригодност за уеб | Много слаба (напомпани полезни данни) | Отлична за графика | Слаба (настолни издателски системи) | Отлична за фотография |
Често срещани режими на повреда и ръководство за хекс възстановяване
Изображението се рендира наклонено по диагонал или изкривено под ъгъл.
Първопричина: Грешно изчисление на подложката на реда (неуспех при подплатяването на всеки ред до 4-байтова граница).
Възстановяване: Прекодирайте с помощта на File2File Image Converter, за да наложите правилен 32-битов ред на стъпката.
Анализ на сигурността и вектори на атака към парсера
BMP декодерите често страдат от четене извън буфера при разпределение на паметта въз основа на недоверени размери в DIB заглавната част.
Известни вектори на атака
- Цялостно препълване при изчисляването на ширина * височина * bpp, водещо до малко разпределение на паметта в динамичната памет и извънгранично записване.
- Повредени RLE8/RLE4 серии от управляващи последовательности за дължина на серията, причиняващи записи в паметта извън определения буфер.
- Отказ от услуга чрез многогигабайтово разпределение на паметта, предизвикано от манипулирани размери в заглавната част.
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- Нулева деградация от компресия: 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% при нулева загуба на визуално качество.
Свързани двойки за конвертиране на BMP
Конвертирането на некомпресирани Windows Bitmap файлове в PNG осигурява компресия без загуба, която намалява размерите на файловете, без да влошава качеството на изображението.
Конвертирането на Portable Network Graphics в Windows Bitmap преобразува компресирани растерни данни в некомпресирана пикселна мрежа за по-стари операционни системи и хардуерни конвейери.