Windows rastrs (.bmp)

Microsoft Standarts

Bitmap Image File (BMP) ir Microsoft pamata no ierīces neatkarīgais rastra grafikas formāts, kas glabā nesaspiestas vai ar RLE saspiestas rindiņas (scanlines) ar tiešu aparatūras kadru bufera saderību.

Konvertēt BMP uz PNG

Bezmaksas BMP uz PNG konvertētājs pārlūkprogrammā. Konvertējiet failus uzreiz savā ierīcē.

Pārbaudīt un metadati

Operētājsistēmas un failu analizatori identificē BMP failus, pārbaudot sākotnējo bināro baitu secību:

Atlasiet vai velciet failus šeit

100% privāta konvertēšana pārlūkprogrammā - faili nekad neatstāj jūsu ierīci

vai ielīmējiet Ctrl+V
Privātuma garantija bez datu pārraides tīklā: 0 baitu augšupielādēti ārējos serveros. Visa apstrāde notika lokāli jūsu pārlūkprogrammas smilškastē.

Baitu līmeņa galvenes paraksts (maģiskie baiti)

Operētājsistēmas un failu analizatori identificē BMP failus, pārbaudot sākotnējo bināro baitu secību:

HEKSADECIMĀLAIS PARAKSTS (NOBĪDE 0):

42 4D

ASCII ATTEIOLOJUMS: BM

Standartizācija: Microsoft Windows Device-Independent Bitmap (DIB) Architecture

Tehniskās specifikācijas

Konteinera arhitektūraBITMAPFILEHEADER followed by BITMAPINFOHEADER (DIB) and raster pixel array
SaspiešanaUncompressed raw scanlines, or optional BI_RLE8 / BI_RLE4 run-length encoding
Baitu secībaLittle-Endian (Intel x86 byte order)
Krāsu telpasDevice Dependent RGB, sRGB (BITMAPV5HEADER embedded)
Kanāli un struktūra1-bit monochrome, 4-bit / 8-bit paletted, 16-bit, 24-bit RGB, or 32-bit RGBA
Maks. izmēri2,147,483,647 x 2,147,483,647 pixels (signed 32-bit integer)
Caurspīdīgums32-bit BGRA alpha mask supported in modern BITMAPV3HEADER and V5HEADER formats
Straumēšana un progresīvā ielādeNon-streamable; scanlines stored upside-down (bottom-up) unless height is negative

Tehniskā salīdzinājuma matrica: BMP pret konkurentiem

Tehniskais atribūtsBMP (Pašreizējais)PNGTIFFJPG
Kompresijas režīmsNesaspiests / Minimāls RLEBezzudumu Deflate (~70% mazāks)Nesaspiests / LZW / ZipZudumains DCT (~90% mazāks)
Dekodēšanas ātrumsTūlītēja atmiņas kopēšanaNepieciešama Deflate dekompresijaNepieciešama LZW/ZIP dekompresijaNepieciešams IDCT aprēķins
Rindiņu secībaNo apakšas uz augšu (apgriezta)No augšas uz lejuNo augšas uz leju / SegmentiNo augšas uz leju MCU bloki
Piemērotība tīmeklimĻoti slikta (pārmērīgi lieli dati)Lieliski piemērots grafikaiSlikta (datorizgaste)Lieliski piemērots fotogrāfijai

Biežākie bojājumu veidi un heksadecimālās atkopšanas ceļvedis

Attēls tiek renderēts pa diagonāli nobīdīts vai leņķī sašķiebs.

Pamatcēlonis: Nepareizs rindu papildinājuma aprēķins (kļūda katras rindiņas papildināšanā līdz 4 baitu robežai).

Atkopšana: Atkārtoti kodējiet, izmantojot File2File Image Converter, lai nodrošinātu pareizu 32 bitu rindiņas soli (stride).

Drošības analīze un parsētāja uzbrukuma vektori

BMP dekoderi bieži cieš no bufera pārlasīšanas, piešķirot atmiņas buferus, pamatojoties uz neuzticamiem DIB galvenes izmēriem.

Zināmie uzbrukuma vektori

  • Veselu skaitļu pārplūde platuma * augstuma * bpp aprēķinā, kas izraisa nelielu kaudzes (heap) atmiņas piešķiršanu un rakstīšanu ārpus robežām.
  • Bojātas RLE8/RLE4 garuma kodējuma aizbēgšanas sekvences, kas izraisa atmiņas rakstīšanu ārpus piešķirtā bufera.
  • Pakalpojuma atteice (DoS) ar daudzu gigabaitu atmiņas piešķiršanu, ko izraisa speciāli veidoti galvenes izmēri.

Aizsardzības labākā prakse:

Vēsturiskā izcelsme un pavērsieni

1998Windows 98 iepazīstina ar BITMAPV5HEADER, pievienojot ICC krāsu profilu pārvaldību un gamma korekciju.
1990Windows 3.0 standartizē BITMAPINFOHEADER DIB specifikāciju visā operētājsistēmā.
1987Tiek ieviests ar Windows 2.0 un OS/2 1.1 kā vietējais displeja rastra formāts.

Galvenās priekšrocības un plusi

  • Nulles kompresijas degradācija: 100% bitu ziņā precīza pikseļu glabāšana bez kompresijas artefaktiem.
  • Universāls vietējās operētājsistēmas atbalsts visās Windows, Linux un macOS versijās.
  • Triviāla dekodēšanas sarežģītība padara to ideālu iegultajiem mikrokontrolleriem un grafikas programmēšanas apmācībai.

Tehniskie ierobežojumi un mīnusi

  • Milzīgi failu izmēri mūsdienu entropijas kompresijas, piemēram, DEFLATE vai Huffman kodēšanas, trūkuma dēļ.
  • Neefektīvs tīmekļa pārsūtīšanai vai mobilo tīklu izplatīšanai.
  • Secība no apakšas uz augšu prasa vertikālu rindu apgriešanu mūsdienu grafikas cauruļvados no augšas uz leju.

Interesanti tehniski fakti

  • BMP pēc noklusējuma saglabā attēla rindiņas otrādi (no apakšas uz augšu) matemātiskās Dekarta koordinātu sistēmas dēļ, ko izmantoja OS/2.
  • Ja augstuma vērtība BMP galvenē ir iestatīta kā negatīvs skaitlis, attēls tiek dekodēts pareizi (no augšas uz leju).
  • Katra rindiņa BMP failā ir jāpapildina ar nullēm līdz 4 baitu reizinātājam (32 bitu robežas līdzināšana).

Bieži uzdotie tehniskie jautājumi

Kāpēc BMP faili ir tik lieli?

BMP faili saglabā neapstrādātas, nesaspiestas krāsu vērtības katram atsevišķam pikselim, savukārt tādi formāti kā PNG saspiež šos datus, nezaudējot kvalitāti.

Vai BMP var atbalstīt caurspīdīgumu?

Jā. 32 bitu BMP faili (izmantojot BITMAPV3HEADER vai jaunāku) var saglabāt 8 bitu alfa kanālu, lai gan atbalsts vecākās programmās var atšķirties.

Kā es varu samazināt BMP faila izmēru?

BMP faila konvertēšana uz PNG ar File2File.app parasti samazina faila izmēru par 60% līdz 85% bez jebkādiem vizuālās kvalitātes zudumiem.