Windows Bitmap (.bmp)
Microsoft СтандартBitmap Image File (BMP) е основният растерен формат на Microsoft, независим от устройството. Той съхранява некомпресирани или компресирани с RLE растерни редове и е съвместим директно с хардуерни буфери на кадрите.
Конвертиране от BMP към PNG
Безплатен конвертор от BMP към PNG в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират BMP файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират BMP файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
42 4DASCII ПРЕДСТАВЯНЕ: BM
Стандартизация: Microsoft Windows Device-Independent Bitmap (DIB) Architecture
Технически спецификации
| Контейнерна архитектура | BITMAPFILEHEADER, последван от BITMAPINFOHEADER (DIB) и масив от растерни пиксели |
| Компресия | Некомпресирани растерни редове или незадължително кодиране на серии BI_RLE8/BI_RLE4 |
| Поредност на байтовете (Endianness) | Ред от младшия към старшия байт (Little-Endian, Intel x86). |
| Цветови пространства | RGB, зависещо от устройството, sRGB (вграден във BITMAPV5HEADER) |
| Канали и структура | 1-битов монохромен цвят, 4/8-битова палитра, 16-битов, 24-битов RGB или 32-битов RGBA |
| Максимални размери | 2 147 483 647 x 2 147 483 647 пиксела (знаково 32-битово цяло число) |
| Прозрачност | Поддържа се 32-битова BGRA алфа маска в съвременните формати BITMAPV3HEADER и V5HEADER |
| Поточно предаване и прогресивно зареждане | Не поддържа поточно обработване; растерните редове се съхраняват обърнати (отдолу нагоре), освен ако височината не е отрицателна |
Техническа сравнителна матрица: BMP спрямо конкуренти
| Технически атрибут | BMP (Текущ) | PNG | TIFF | JPG |
|---|---|---|---|---|
| Режим на компресия | Некомпресиран / минимален RLE | Компресия Deflate без загуби; спестяването на място зависи от съдържанието на изображението | Некомпресиран / LZW / Zip | DCT със загуби (около 90% по-малък) |
| Скорост на декодиране | Незабавно копиране в паметта | Изисква декомпресиране с Deflate | Изисква декомпресиране с LZW/ZIP | Изисква изчисляване на IDCT |
| Подредба на растерните редове | Отдолу нагоре (инвертирана) | Отгоре надолу | Отгоре надолу / Ивици | MCU блокове отгоре надолу |
| Пригодност за уеб | Много слаба (обемни файлове) | Отлична за графика | Слаба (настолни издателски системи) | Отлична за фотография |
Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни
Изображението се извежда наклонено по диагонал или изкривено.
Първопричина: Неправилно изчисляване на допълването на редовете (не се допълва всеки ред до граница от 4 байта).
Възстановяване: Кодирайте изображението отново с Image Converter на File2File.app, за да се зададе правилна 32-битова стъпка на реда.
Анализ на сигурността и вектори на атака към парсера
При декодерите на BMP често има четене извън границите на буфера, когато паметта се заделя въз основа на недоверени размери от DIB заглавката.
Известни вектори на атака
- Целочислено препълване при изчисляване на ширина x височина x bpp, което води до твърде малко заделена heap памет и запис извън границите.
- Повредени управляващи последователности за дължина на серията RLE8/RLE4, които причиняват запис извън заделения буфер.
- Отказ на услугата чрез заделяне на няколко гигабайта памет заради подправени размери в заглавката.
Най-добри практики за защита: Проверявайте стриктно границите за ширина, височина и битова дълбочина в DIB заглавката, преди да заделяте памет за изображението.
Исторически произход и етапи
Основни предимства
- Без загуба от компресия: пикселите се съхраняват точно побитово, без компресионни артефакти.
- Windows разполага с вграден BMP кодек, а поддръжката в други операционни системи и приложения е различна.
- Опростеното декодиране го прави подходящ за вградени микроконтролери и обучение по програмиране на графични приложения.
Технически ограничения и минуси
- Много големи файлове заради липсата на съвременни методи за ентропийна компресия като DEFLATE или кодиране на Хафман.
- Неефективен за уеб пренос и разпространение в мобилни мрежи.
- Редовете се съхраняват отдолу нагоре, затова в съвременните графични конвейери отгоре надолу се налага вертикалното им обръщане.
Интересни технически факти
- По подразбиране BMP съхранява растерните редове отдолу нагоре заради математическата декартова координатна система, използвана в OS/2.
- Ако височината във BMP заглавката е отрицателна, изображението се декодира правилно ориентирано (отгоре надолу).
- Всеки растерен ред във BMP файл трябва да се допълни с нулеви байтове до размер, кратен на 4 байта (подравняване на 32-битова граница).
Често задавани технически въпроси
Защо BMP файловете са толкова големи?
BMP файловете съхраняват необработани, некомпресирани цветови стойности за всеки пиксел, докато формати като PNG компресират данните без загуба на качество.
Може ли BMP да поддържа прозрачност?
Да. 32-битовите BMP файлове (с BITMAPV3HEADER или по-нова версия) могат да съхраняват 8-битов алфа канал, макар че поддръжката варира в по-стария софтуер.
Как мога да намаля размера на BMP файл?
Конвертирането на BMP в PNG може да намали размера на файла, като запази стойностите на пикселите, но резултатът зависи от съдържанието на изображението и кодирането на BMP файла.
Свързани двойки за конвертиране на BMP
Конвертирането на некомпресирани Windows Bitmap файлове в PNG осигурява компресиране без загуба, която намалява размерите на файловете, без да влошава качеството на изображението.
Конвертирането на Portable Network Graphics в Windows Bitmap преобразува компресирани растерни данни в некомпресирана пикселна мрежа за по-стари операционни системи и хардуерни потоци за обработка.
Поставете поддържана BMP екранна снимка на една PDF страница за билет или отчет. Този метод приема некомпресирани 24-битови или 32-битови пиксели, а не компресирани BMP варианти.