Asosiy mazmunga oʻtish

Fayl formatlari

BMP nima? Bitmap formati batafsil tushuntirilgan

BMP Windows ning siqilmagan, yoʻqotishsiz bitmap formatidir. Uning sarlavha tuzilishi, rang chuqurligi, cheklovlari va fayllarni qanday kichraytirish mumkinligini tushuntiramiz.

Muallif: Hemen Dönüştür Editör EkibiEʼlon qilingan: 7 daqiqa oʻqish

BMP fayl formati qoʻllanmasi uchun muqova rasmi

BMP Windows olamidagi eng qadimgi va eng oddiy rasm formatlaridan biri. BMP fayl odatda piksellarni hech qanday siqishsiz, qatorma-qator diskka yozadi. Bu soddalik uni oʻqish uchun oson va yoʻqotishsiz qiladi, xuddi shu soddalik esa fayllarni ulkan qilib yuboradi. Bu maqolada BMP qayerdan kelib chiqqani, fayl ichida nima borligi, rang chuqurligi va shaffoflik tafsilotlari, bugun u bilan qayerda uchrashish mumkinligi va BMP fayllarni qulayroq formatlarga qanday aylantirish koʻrib chiqiladi.

BMP nima?

BMP (bitmap, kengaytmasi .bmp) rastrli, piksellarga asoslangan rasm fayl formatidir. Texnik hujjatlarda u DIB, yaʼni qurilmaga bogʻliq boʻlmagan bitmap (device-independent bitmap) deb ham ataladi. "Qurilmaga bogʻliq emas" degani rasm qaysi videokarta yoki printerda yaratilganidan qatʼi nazar bir xil talqin qilinishi mumkinligini bildiradi: fayl ranglarini dekodlash uchun zarur maʼlumotni oʻz sarlavhasi va rang jadvalida olib yuradi.

Microsoft ning Win32 hujjatlariga koʻra, bitmap fayl BITMAPFILEHEADER tuzilmasi bilan boshlanadi, undan keyin BITMAPINFOHEADER, BITMAPV4HEADER yoki BITMAPV5HEADER, soʻng ixtiyoriy rang jadvali va nihoyat piksel maʼlumotlari keladi. MIME turi image/bmp.

Qisqacha tarix: Windows va OS/2 dan bugungi kungacha

BMP 1980 yillar oxirida Microsoft va IBM ning Windows va OS/2 ustidagi qoʻshma ishidan kelib chiqqan. Windows 1.0 davridagi bitmaplar chiqish qurilmasiga kuchli bogʻliq edi; qurilmaga bogʻliq boʻlmagan shakl 1990 yilda Windows 3.0 bilan keng tarqaldi. OS/2 Presentation Manager uchun belgilangan 12 baytlik BITMAPCOREHEADER tufayli odamlar hanuz "OS/2 BMP" fayllar haqida gapiradi.

Yillar davomida format sarlavha oxiriga yangi maydonlar qoʻshish orqali kengaytirildi. Library of Congress format tavsifiga koʻra, 5-versiya 1998 yilda Windows 98 bilan kelgan va faylga ICC rang profillarini yozish imkonini bergan. Bugungi keng tarqalgan sarlavha oʻlchamlari:

SarlavhaOʻlchamAsosiy qoʻshimcha
BITMAPCOREHEADER12 baytOS/2 1.x bilan mos asosiy tuzilma
BITMAPINFOHEADER40 baytWindows 3.0 dan beri eng keng tarqalgan sarlavha; siqish va aniqlik maydonlari
BITMAPV4HEADER108 baytRang niqoblari, alfa niqobi va rang fazosi maʼlumotlari
BITMAPV5HEADER124 baytJoylangan yoki bogʻlangan ICC profillari, renderlash maqsadi

Oʻquvchi dasturlar qaysi sarlavha ishlatilayotganini uning birinchi maydonidagi oʻlcham qiymatidan aniqlaydi. Bu eski dasturlarga yangi maydonlarni eʼtiborsiz qoldirib, asosiy qismni baribir oʻqish imkonini beradi.

BMP fayl ichida nima bor

Fayl sarlavhasi va "BM" imzosi

Har bir BMP fayl 14 baytlik fayl sarlavhasi bilan boshlanadi va uning birinchi ikki bayti ASCII dagi BM belgilari (oʻn oltilikda 42 4D). Sarlavha faylning umumiy hajmini va piksel maʼlumotlari boshlanadigan bayt siljishini saqlaydi. Windows almashinuv buferiga qoʻyilgan DIB (CF_DIB formati) bu 14 baytni tashlab yuboradi va toʻgʻridan-toʻgʻri maʼlumot sarlavhasi bilan boshlanadi.

Maʼlumot sarlavhasi

Maʼlumot sarlavhasi kenglik, balandlik, piksel boshiga bitlar soni (biBitCount), siqish turi, gorizontal va vertikal aniqlik (metrga piksellarda) hamda rang jadvalida ishlatilgan ranglar sonini saqlaydi.

Rang jadvali (palitra)

Piksel boshiga 8 bit yoki undan kam boʻlgan rasmlarda piksel rang emas, balki rang jadvalidagi indeksdir. Microsoft hujjatlaridagi misolda 16 rangli 32x32 bitmapning piksel massivi 32 x 32 x 4 = 4096 bit, chunki 16 rangga murojaat qilish uchun 4 bit yetarli.

Piksel maʼlumotlari: pastdan yuqoriga qatorlar va 4 baytlik tekislash

BMP ning ikkita gʻayrioddiy xususiyati bor. Birinchidan, agar balandlik musbat boʻlsa, qatorlar pastdan yuqoriga saqlanadi: fayldagi birinchi qator rasmning eng pastki qatori. Manfiy balandlik qatorlarni yuqoridan pastga saqlaydi, ammo bunday rasmlarni siqib boʻlmaydi. Ikkinchidan, har bir qator 4 baytga karrali boʻlguncha toʻldiriladi. Microsoft qator uzunligini (stride) quyidagicha beradi:

stride = ((width * bitCount + 31) & ~31) >> 3
imageSize = |height| * stride

24 bitli 1920x1080 rasm uchun har bir qator 1920 x 3 = 5 760 bayt (allaqachon 4 ga karrali), shuning uchun piksel maʼlumotlari 5 760 x 1 080 = 6 220 800 bayt. 54 baytlik sarlavhalar bilan fayl taxminan 6,2 MB boʻladi. Xuddi shu rasm JPG da odatda buning kichik bir qismini tashkil qiladi.

Rang chuqurligi, siqish va shaffoflik

BITMAPV5HEADER hujjatlari piksel boshiga 1, 4, 8, 16, 24 va 32 bitni belgilaydi (0 qiymati chuqurlik joylangan JPEG yoki PNG maʼlumotlaridan olinishini bildiradi). 1 bit qora-oq, 4 bit 16 rang, 8 bit esa 256 rangli palitra. 24 bitda har bir piksel koʻk, yashil, qizil tartibidagi uch bayt.

Siqish maydoni quyidagi qiymatlarni olishi mumkin:

  • BI_RGB: siqilmagan. Amalda BMP fayllarning mutlaq koʻpchiligi.
  • BI_RLE8 va BI_RLE4: 8 bitli va 4 bitli palitrali rasmlar uchun oddiy takrorlanish uzunligi kodlash (RLE). Katta tekis sohalar uchun foydali, fotosuratlar uchun deyarli befoyda.
  • BI_BITFIELDS: siqish emas; niqoblar 16 bitli va 32 bitli piksellarda qizil, yashil va koʻk bitlar qayerda joylashganini belgilaydi (masalan, RGB 565).
  • BI_JPEG va BI_PNG: bitmap ichida JPEG yoki PNG maʼlumotlariga ruxsat beradi. Umumiy maqsadli koʻruvchilar kamdan-kam qoʻllab-quvvatlaydi.

Shaffoflik BMP ning eng nomuvofiq sohasi. V4 va V5 sarlavhalaridagi alfa niqobi 32 bitli pikselning toʻrtinchi baytini shaffofsizlik sifatida belgilashi mumkin, ammo klassik 32 bitli BMP da bu bayt ishlatilmaydigan deb taʼriflangan va koʻplab dasturlar uni eʼtiborsiz qoldiradi. Shuning uchun bir dasturda shaffof koʻringan, boshqasida esa qora fonda turgan 32 bitli BMP gʻayrioddiy holat emas. Agar shaffoflik kerak boʻlsa, PNG ancha xavfsizroq tanlov.

Tizimlar, brauzerlar va dasturlarda qoʻllab-quvvatlash

BMP deyarli hamma joyda ochiladi. Windows ning oʻrnatilgan koʻruvchilari va Paint, macOS dagi Preview va keng tarqalgan Linux koʻruvchilari uni oʻqiydi. MDN ning rasm formatlari qoʻllanmasi BMP Chrome, Edge, Firefox, Opera va Safari ning barcha versiyalarida qoʻllab-quvvatlanishini koʻrsatadi. Xuddi shu qoʻllanma siqilmagan BMP fayllar PNG yoki JPG ga nisbatan juda katta ekanini va veb-sayt mazmuni uchun odatda ulardan qochish kerakligini ham taʼkidlaydi.

Bugun BMP qayerda ishlatiladi?

  • Windows ilovalari resurslari va eski dasturlar: asboblar paneli rasmlari, oʻrnatish ustasi grafikasi va baʼzi oʻyin resurslari hanuz BMP.
  • Oʻrnatilgan tizimlar va mikrokontrollerlar: displeyli qurilmaga JPEG dekoderi kerak emas; piksel maʼlumotlarini toʻgʻridan-toʻgʻri ekranga nusxalash mumkin.
  • Sanoat kameralari, skanerlar va sinov vositalari: xom, yoʻqotishsiz natija kerak boʻlganda BMP oddiy oraliq format.
  • Taʼlim: sarlavhasi bor-yoʻgʻi bir necha oʻn baytdan iborat boʻlgani uchun BMP koʻpincha tasvirga ishlov berish kurslarida talabalar birinchi boʻlib oʻqiydigan va yozadigan format.

Kuchli va zaif tomonlari

Kuchli tomonlariZaif tomonlari
Yoʻqotishsiz; piksel qiymatlari hech qachon oʻzgarmaydiSiqilmagan, shuning uchun fayllar juda katta
Oʻqish va yozish juda oson, protsessorga yuk yoʻqShaffoflik nomuvofiq qoʻllab-quvvatlanadi
Deyarli har bir operatsion tizim va brauzerda ochiladiMetamaʼlumotlarni (EXIF, tavsiflar) zaif qoʻllab-quvvatlaydi
Palitra rejimlari resurslari kam qurilmalarga mosVeb, elektron pochta va yuklash shakllari uchun noqulay

Keng tarqalgan muammolar va ularni hal qilish

Fayl elektron pochta yoki yuklash shakli uchun juda katta

Bu eng keng tarqalgan muammo. Fotosuratlar va skanlar uchun BMP ni JPG ga aylantirish odatda hajmni bir tartib yoki undan ham koʻproq kamaytiradi. Skrinshotlar, diagrammalar yoki matnli har qanday narsa uchun BMP ni PNG ga aylantirish yaxshiroq: PNG ham yoʻqotishsiz, lekin siqilgan va JPG keskin qirralar atrofida hosil qiladigan shovqinni qoʻshmaydi.

32 bitli BMP qora fon bilan koʻrinadi

Dastur alfa baytini tanimaydi yoki notoʻgʻri oʻqiydi. PNG ga aylantirish odatda muammoni hal qiladi. Shaffoflikka ega boʻlmagan JPG ga oʻtkazganda shaffof sohalar oq yoki siz tanlagan rang bilan toʻldiriladi.

Rasm teskari yoki qiyshiq

Oʻzingiz yozgan oʻquvchi dasturda bu odatda ikki xatodan kelib chiqadi: qatorlar pastdan yuqoriga saqlanishini eʼtiborsiz qoldirish yoki har bir qator oxiridagi toʻldiruvchi baytlarni oʻtkazib yubormaslik. Yuqoridagi stride formulasidan foydalanish va balandlik ishorasini tekshirish ikkalasining ham oldini oladi.

Dastur BMP ni ochishdan bosh tortadi

RLE siqishli, BI_BITFIELDS li yoki joylangan JPEG/PNG maʼlumotli BMP fayllarni baʼzi oddiy oʻquvchilar qoʻllab-quvvatlamaydi. Siqilmagan 24 bitli BMP sifatida qayta saqlash yoki PNG ga aylantirish moslik muammosini bartaraf qiladi.

Konvertatsiya boʻyicha maslahatlar

  • Fotosuratlar uchun JPG, grafika uchun PNG: BMP dan chiqishda odatiy qoida amal qiladi. Veb uchun rasm konvertorida WebP yoki AVIF ni ham tanlashingiz mumkin.
  • Sifatni yuqori tuting: BMP yoʻqotishsiz boʻlgani uchun 85-90% JPG sifati asl nusxadan ajratish qiyin boʻlgan natija beradi.
  • Kerak boʻlsa kichraytiring: agar fayl hali ham katta boʻlsa, piksel oʻlchamlarini kamaytiring yoki maqsadli hajmga erishish uchun rasmni siqish vositasidan foydalaning.
  • Teskari yoʻnalishda: agar oʻrnatilgan qurilma yoki eski dastur BMP talab qilsa, rasm konvertorida maqsad sifatida BMP ni tanlang. Vositalarimiz standart siqilmagan 24 bitli BMP yozadi; shaffof sohalar siz tanlagan fon rangiga tekislanadi.

BMP konvertatsiya sahifalarimiz brauzeringizda ishlaydi: fayl yuklanmaydi va hech qachon qurilmangizdan chiqmaydi.

Koʻp beriladigan savollar

BMP va DIB bir narsami?

Amalda ha. DIB Windows xotirada va almashinuv buferida ishlatadigan, qurilmaga bogʻliq boʻlmagan bitmap tuzilmasi; BMP fayl esa oldiga 14 baytlik fayl sarlavhasi qoʻshilgan xuddi shu tuzilma.

BMP yoʻqotishsizmi?

Ha. Siqilmagan va RLE bilan siqilgan BMP fayllar piksel qiymatlarini aynan saqlaydi. Yagona istisno joylangan JPEG maʼlumotli kamyob BMP lar.

BMP ni PNG ga aylantirish sifatni yoʻqotadimi?

Yoʻq. PNG ham yoʻqotishsiz; rasm bir xil qoladi va faqat siqilgani uchun kichrayadi.

BMP ni veb-saytda ishlatsa boʻladimi?

Brauzerlar BMP ni koʻrsatadi, lekin fayllar keraksiz katta va sahifalarni sekinlashtiradi. Veb uchun JPG, PNG, WebP yoki AVIF dan foydalaning.

BMP shaffoflikni qoʻllab-quvvatlaydimi?

32 bitli BMP nazariy jihatdan alfa kanalini olib yura oladi, ammo dasturlar uni izchil qoʻllab-quvvatlamaydi. Shaffoflik kerak boʻlganda PNG xavfsizroq tanlov.

Manbalar

Tegishli konvertorlar

Barcha maqolalar