Bu məqalə bmp qrafik formatının necə göründüyü haqqındadır. Bu daha sadə formatlardan biri olsa da, bu formatın çoxlu variasiyaları olduğuna görə, bütün məqamlar aydın deyil. Beləliklə, su tökməyi dayandırın, başlayaq.
Format strukturları
Bmp formatı (BitMaP - bit xəritəsi və ya rusca bit massivi sözlərindən) kömək edən xüsusi API funksiyalarına malik olan Windows OS-də oxumaq və göstərmək olduqca asan olan sıxılmamış (əsasən) təsvirdir.
Əvvəlcə verilənlərin bmp-də qrafik təsvirini verək (şəkil MSDN-dən götürülmüşdür).
Başlanğıcda fayl başlığı (BITMAPFILEHEADER) var. Aşağıdakı kimi təsvir edilir:
bfType fayl növünü müəyyən edir. Burada o, BM olmalıdır. Hər hansı BMP faylını mətn redaktorunda (yaxud daha yaxşısı, onaltılıq redaktorda) açsanız, ilk iki simvolun BM olduğunu görəcəksiniz (BitMap sözündən, yəqin ki, artıq təxmin etdiyiniz kimi).
bfSize faylın özünün baytla ölçüsüdür. Düzünü desəm, onu hesablamalısan (bu tövsiyə olunur), amma fayl ölçüsünü səhv təyin etdim (qəsdən olmasa da :)) və heç bir problem olmadı (ACDSee problemsiz oxudu, proqramım işlədi), amma sizə tövsiyə etmirəm onu qəsdən səhv yazın , birdən vicdanlı bir proqram ortaya çıxacaq ki, bu ölçü ilə real olanı müqayisə edəcək və bunun bmp deyil, başqa bir şey olduğuna qərar verəcəkdir. İdeal olaraq, bütün proqramlar, onun saxta deyil, həqiqi bmp olduğuna əmin olmaq üçün, birincisi, bfType-da "BM" (dırnaq işarələri olmadan) olduğunu və ikincisi, bfSize-in fayl ölçüsünə bərabər olduğunu yoxlamalıdır.
bfReserved1 və bfReserved2 qorunur və sıfır olmalıdır.
bfOffBits. Bu, bu strukturun ən vacib sahələrindən biridir. O, şəkli təsvir edən bitmapın özünün faylın əvvəlinə (və ya MSDN-də yazıldığı kimi "BITMAPFILEHEADER strukturunun əvvəlindən") nisbətən haradan başladığını göstərir. Yəni, serialın əvvəlinə çatmağınıza zəmanət vermək üçün yazmalısınız:
typedef strukturu tagBITMAPINFOHEADER
{
DWORD biSize;
UZUN iki genişlik;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
UZUN biXPelsPerMeter;
UZUN biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrİmportant;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;
bisiz strukturun özünün ölçüsüdür. O, aşağıdakı kimi işə salınmalıdır: bih.biSize = sizeof(BITMAPINFOHEADER);
Burada yenə bih-in aşağıdakı kimi elan edildiyini fərz edəcəyik: BITMAPINFOHEADER bih;
biWidth və biHeight təsvirin genişliyini və hündürlüyünü müvafiq olaraq piksellərlə təyin edin.
ikiTəyyarələr təyyarələrin sayını müəyyən edir. Hələlik həmişə 1-ə təyin olunub.
biBitCount- Piksel başına bitlərin sayı. Bu barədə aşağıda daha ətraflı danışacağıq.
bikompressiya sıxılma növünü göstərir. Təəccüblənməyin və ya bmp-nin qəfil sıxılma yaşamasına qorxmayın. Mən şəxsən birdən çox sıxılmış bmp görməmişəm (amma onların olmadığını demirəm). Əgər sıxılma yoxdursa, onda bu bayraq BI_RGB olaraq təyin edilməlidir. Bu yazıda biz sıxılmamış formatdan danışırıq, buna görə də digər bayraqları sadalamayacağam. Görünür, JPEG və PNG fayllarında eyni strukturdan istifadə olunur, çünki Windows 98-dən başlayaraq BI_JPEG variantları ortaya çıxdı ki, bu da bu şəklin JPEG və BI_PNG olduğunu, PNG olduğunu göstərir (Jpeg formatı haqqında heç nə bilmirəm, Mən sadəcə MSDN-də yazılanlara əsaslanaraq bu qənaətləri etdim).
biSizeImage təsvirin ölçüsünü baytla göstərir. Şəkil sıxılmamışsa (yəni əvvəlki sahə BI_RGB olaraq təyin olunubsa), onda burada sıfır yazılmalıdır. biXPelsPerMeter Və biYPelsPerMeter bitmapın (rastrın) çıxarılacağı son cihazın müvafiq olaraq üfüqi və şaquli təsvir ölçüsünü (metr başına piksellə) ifadə edir. Tətbiq bu dəyərdən bir qrup resurslardan istədiyiniz cihaz üçün ən uyğun bitmapı seçmək üçün istifadə edə bilər. Fakt budur ki, bmp formatı mahiyyətcə hardware-müstəqil rastrdır, yəni əldə edilənin görünüşü bu rasterin nəyə proyeksiya edildiyindən (belə desək) asılı olmadıqda. Məsələn, şəkil monitor ekranında çəkilməsindən və ya printerdə çap olunmasından asılı olmayaraq eyni görünəcək. Ancaq cihazların həlli fərqlidir və mövcud olanlardan ən uyğun şəkli seçmək üçün bu parametrlərdən istifadə olunur.
biClrUsed cədvəldən istifadə olunan rənglərin sayını müəyyən edir. Bu dəyər sıfırdırsa, rastr biBitCount dəyərinin icazə verdiyi maksimum rəng sayından istifadə edir. Bu, yalnız sıxılmış şəkillərə aiddir. Əgər biClrUsed sıfırdan fərqlidirsə və biBitCount 16-dan azdırsa, biClrUsed qrafik mühərrikinin və ya mövcud cihaz drayverinin cari rəng sayını müəyyən edir. biBitCount 16-dan böyük və ya bərabərdirsə, biClrUsed cari sistem palitrasını optimallaşdırmaq üçün istifadə olunan rəng cədvəlinin ölçüsünü müəyyən edir.
biClrVacib- bu vacib rənglərin sayıdır. Rəsmi təsvir etmək üçün lazım olan rənglərin sayını müəyyən edir. Bu dəyər 0 olarsa (adətən olduğu kimi), onda bütün rənglər vacib sayılır.
BMP formatının növləri
Hər növ bmp formatı şərti olaraq iki növə bölmək olar: palitrası və qeyri-palitrası. Yəni palitranın verilmiş formatda istifadə olunub-olunmaması. Nəzərə alın ki, palitra hətta palitrasız formatlarda ola bilər, lakin orada istifadə edilmir. Palitrasız bmp-lərdə rəng müəyyən bir yerdən başlayaraq fayla daxil olan bitlərdən birbaşa hesablanır. Və palitralarda hər bayt bir və ya daha çox pikseli təsvir edir və bayt (və ya bit) dəyərləri palitradakı rəng indeksidir. Başlamaq üçün, mümkün variantları müqayisə edən bir cədvəl təqdim edəcəyəm. Şəklin növü (palitra və ya palitrasız) bir pikselə neçə bit verildiyindən, yəni BITMAPINFOHEADER strukturunun biBitCount dəyərindən asılıdır.
biBitCount | Palitra və ya qeyri-palitra formatı | Rənglərin maksimum mümkün sayı | Qeydlər | 1 | Palitrası | 2 | İki rəngli, ağ-qara, ağ-qara palitrası olan şəkil. Raster biti (bircə aşağıdadır) sıfırlanırsa (0-a bərabərdir), bu o deməkdir ki, palitradan ilk rəng bu yerdə olmalıdır və təyin olunarsa (1-ə bərabərdir), ikincisi. | 4 | Palitrası | 16 | Hər bayt 2 pikseli təsvir edir. Budur, MSDN-dən bir nümunə, əgər şəkildəki ilk bayt 0x1F-dirsə, o zaman iki pikselə uyğundur, birincinin rəngi palitradan ikinci rəngdir (çünki geri sayım sıfırdan başlayır), ikinci piksel isə. palitranın 16-cı rəngi. | 8 | Palitrası | 256 | Ən ümumi variantlardan biri. Ancaq eyni zamanda, ən sadələri. Palitra bir kilobayt tutur (lakin buna inanmamaq daha yaxşıdır). Bir bayt bir rəngdir. Üstəlik, onun dəyəri palitradakı rəng nömrəsidir. | 16 | Palitra yoxdur | 2^16 və ya 2^15 | Bu, ən qarışıq variantdır. Onun palitrasız olması ilə başlayaq, yəni rasterdə hər iki bayt (bir SÖZ sözü) unikal olaraq bir pikseli müəyyənləşdirir. Ancaq burada baş verənlər: 16 bit və 3 rəng komponenti (Qırmızı, Yaşıl, Mavi) var. Ancaq 16 3-ə bölünmək istəmir. Ona görə də burada iki variant var. Birincisi, 16 deyil, 15 bit istifadə etməkdir, sonra hər rəng komponenti üçün 5 bit var. Bu yolla maksimum 2^15 = 32768 rəng istifadə edə və üçqat R-G-B = 5-5-5 əldə edə bilərik. Ancaq sonra 16-dan bir az boş yerə sərf olunur, amma elə olur ki, gözlərimiz bütün rənglər arasında yaşılı daha yaxşı qəbul edir, ona görə də biz bu biti yaşıl komponentə vermək qərarına gəldik, yəni. üçlü R-G-B = 5-6-5 və indi biz 2^16 = 65536 rəngdən istifadə edə bilərik. Amma ən xoşagəlməz hal odur ki, hər iki variantdan istifadə olunur. MSDN təklif edir ki, neçə rəngin istifadə edildiyini ayırd etmək üçün BITMAPINFOHEADER strukturundan biClrUsed sahəsini bu dəyərlə doldurun. Hər bir komponenti seçmək üçün aşağıdakı maskalardan istifadə etməlisiniz. 5-5-5 formatı üçün: mavi komponent üçün 0x001F, yaşıl üçün 0x03E0 və qırmızı üçün 0x7C00. 5-6-5 formatı üçün: 0x001F - mavi, 0x07E0 - müvafiq olaraq yaşıl və 0xF800 qırmızı komponentlər. | 24 | Palitra yoxdur | 2^24 | Və bu ən sadə formatdır. Burada 3 bayt 3 rəng komponentini müəyyən edir. Yəni bayt başına bir komponent. Biz sadəcə olaraq RGBTRIPLE strukturunu oxuyuruq və onun rgbtBlue, rgbtGreen, rgbtRed sahələrindən istifadə edirik. Bu ardıcıllıqla gedirlər. | 32 | Palitra yoxdur | 2^32 | Burada 4 bayt 3 komponenti müəyyən edir. Lakin, bir bayt istifadə edilmir. O, məsələn, alfa kanalı (şəffaflıq) üçün istifadə edilə bilər. Bu halda, aşağıdakı kimi təsvir olunan RGBQUAD strukturlarından istifadə edərək rasteri oxumaq rahatdır: |
Bmp formatında məlumatların saxlanması
Yaxşı, indi ən maraqlı hissəyə gəldik. BITMAPFILEHEADER və BITMAPINFOHEADER strukturlarından sonra palitra gəlir. Üstəlik, əgər format palitrasızdırsa, o, orada olmaya bilər, lakin buna inanmamalısınız. Fakt budur ki, bmp formatını yeni anlamağa başlayanda bir kitabda oxumuşdum ki, guya format palitrasızdırsa, deməli, ümumiyyətlə palitrası yoxdur. Hətta iki şəkil var idi - format diaqramları: biri palitralı, digəri olmadan. Və o zaman mən bmp faylları ilə səylə işləyən proqram yazırdım. Və mən daxil olan şəkilləri 256 rəngdən 24 bitə (əgər varsa) müvəqqəti fayllara çevirməli oldum. Və mən sadəcə olaraq 24 bitlik palitra yaratmadım (BITMAPFILEHEADER strukturundan bfOffBits sizeof(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER) cəminə bərabər idi) və gələn 24-bitləri dəyişməz buraxdım. 256 rəngli rasterlərlə hər şey lazım olduğu kimi işlədim, tələb olunan hissənin əvəzinə alt hissəsində zibil olan 24 bitlik təsvirə rast gəlməyincə, orijinal faylın ölçüsü ilə müqayisə edənə qədər nəyin səhv olduğunu dərhal başa düşmədim Əgər palitrası olmasaydı, orada olmalı idi. Fərq 1024 bayt idi). (baxmayaraq ki, rast gəldiyim bütün şəkillərin palitrası 256 rəng və ya 1Kb idi), bfOffBits-dən istifadə edərək həmişə faylda rasterin başına keçin palitrada bütün rənglər istifadə edilmir (lakin, məsələn, 16), sonra tez-tez A 256 * 4 = 1024 palitrası üçün 256 sahə ayrılır, burada 4 RGBQUAD strukturunun ölçüsüdür, yəni eyni bir kilobayt əldə edilir.
Palitradan dərhal sonra rastrın özü gəlir. Burada işlər daha da qarışıq olur. Birincisi, burada piksellər formatdan asılı olaraq yuxarıdakı cədvəldə yazıldığı kimi təsvir edilmişdir. Və onlar özləri rəng komponentlərinin dəyərini ehtiva edə bilər (palitrasız olanlar üçün) və ya palitrası massivinin indeksləri ola bilərlər. Şəklin özü sətir-sətir qeyd olunur. İkincisi, şəkil tərs görünür. Yəni əvvəlcə alt sətir, sonra sondan əvvəlki sətir və s. ən yuxarıya qədər yazılır. Və üçüncüsü, yazıldığı kimi, rastr xəttinin ölçüsü 4-ə çox deyilsə, o zaman 1-dən 3-ə qədər boş (sıfır) baytla doldurulur ki, sətrin uzunluğu abzasın qatlı olsun. Bu, ən xoşagəlməz haldır. Fakt budur ki, hər bir format üçün bu sayda boş baytları tənzimləməlisiniz (baxmayaraq ki, palitranın bir hissəsini orada yazmağı xoşlayıram, əgər bu baytlar hər halda atlanırsa və heç kim yoxdursa, əlavə "sıfır" dəyişənlər yaratmaq istəmirəm. onlara ehtiyacı var). Mən sətrin sonuna hansı format üçün neçə bayt əlavə edilməli olduğunu göstərən düsturlarla bir cədvəl təqdim edirəm. Orada Width dəyişəni, təxmin etdiyiniz kimi, təsvirin eni deməkdir. Bütün bu düsturlar eksperimental olaraq yaradılmışdır. Mən yalnız ən çox istifadə olunan formatlar üçün bir nümunə verəcəyəm. Qalanları üçün özünüz yaza bilərsiniz.
Nümunə proqramlar
Bütün mənbələri yükləyə bilərsiniz, mən burada çox yazmayacağam. Mən sadəcə şərhlərlə funksiyaları verəcəyəm.
Salam 1. bmp formatında şəkilin yaradılması.
Burada monoxromatik bir şəkil yaradılır. Bu cür funksiyaların üç nümunəsi var: bmp 8, 16 və 24 bit yaratmaq. Mən yalnız 16-bit üçün verəcəm.
// Bmp formatında 5-5-5 kimi 16 bitlik bir şəkil yaradaq, bu sadəcə monoxromatik olacaq
void CreateBmp555(char * fname, WORD rəngi)
{
HANDLE hFile;
DWORD RW;
int i, j;
// Lazımi strukturları elan edin
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER;
BYTE Palitrası[1024]; // Palitra
// Gəlin 35 x 50 piksel təsvirimiz olsun
int Eni = 35;
int Hündürlük = 50;
memset(Palitra, 0, 1024); // Palitrada sıfırlarımız var, onları doldurun
memset (&bfh, 0, sizeof (bfh) );
Bfh.bfType = 0x4D42 ; // Qeyd edək ki, bu bmp "BM"
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) + 1024 ; // Palitra 1Kb tutur, lakin biz ondan istifadə etməyəcəyik
bfh.bfSize = bfh.bfOffBits +
sizeof(rəng) * Eni * Hündürlük +
Hündürlük * ((ölçüsü (rəng) * Eni) % 4 ); // Son faylın ölçüsünü hesablayın
memset (&bih, 0 , sizeof (bih) );
bih.biSize = sizeof(bih); // Belə olmalı idi
bih.biBitCount = 16 ; // piksel başına 16 bit
bih.biClrUsed = 32768 ; // 5-5-5 istifadə edirik
bih.biCompression = BI_RGB; // Sıxılmadan
bih.biHeight = Hündürlük;
bih.biWidth = Genişlik;
bih.biPlanes = 1 ; // 1 olmalıdır
// Qalan sahələr isə 0 olaraq qalır
HFile = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
əgər (hFile == INVALID_HANDLE_VALUE)
qayıtmaq;
// Başlıqları yazın
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL );
// Palitranı yazın
WriteFile(hFile, Palitra, 1024, &RW, NULL);
üçün (i = 0; i<
Height;
i++
)
{
üçün (j = 0; j<
Width;
j++
)
{
WriteFile (hFile, & color, sizeof (rəng) , & RW, NULL );
}
// Sərhədlə hizalayın
WriteFile (hFile, Palitra, (sizeof (rəng) * En) % 4 , & RW, NULL );
}
CloseHandle(hFile);
}
rəng - şəkil rəngi. Bu dəyişənin dəyəri birinci cədvələ uyğun olaraq doldurulmalıdır. Siz, məsələn, ACDSee-də ortaya çıxan şəkilə baxa bilərsiniz. Sadəcə Photoshop-da açmağa çalışdım, amma məlum oldu ki, onları bu formatda oxuya bilməzsiniz :).
Misal 2. Şəklin 8 bit formatından (256 rəng) 24 bitə çevrilməsi.
BOOL Convert256To24 (char * fin, char * fout)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER;
int Genişlik, Hündürlük;
RGBQUAD Palitrası[256];
BYTE * inBuf;
RGBTRIPLE * outBuf;
HANDLE hIn, hOut;
DWORD RW;
DWORD OffBits;
int i, j;
HIn = Fayl Yarat (fin, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
əgər (hIn == INVALID_HANDLE_VALUE)
FALSE qaytarmaq;
HOut = Fayl Yarat(fout, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
əgər (hOut == INVALID_HANDLE_VALUE)
{
CloseHandle(hIn);
FALSE qaytarmaq;
}
// Məlumatları oxuyun
ReadFile (hIn, & bfh, sizeof (bfh) , & RW, NULL );
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL );
ReadFile (hIn, Palitra, 256 * sizeof (RGBQUAD) , & RW, NULL );
// Göstəricini rastrın əvvəlinə təyin edin
SetFilePointer (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
Genişlik = bih.biWidth;
Hündürlük = bih.biHündürlük;
OffBits = bfh.bfOffBits;
// Yaddaş ayırın
inBuf = yeni BYTE [Eni];
outBuf = new RGBTRIPLE [Genişlik];
// Başlıqları doldurun
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) ; // Palitra yazmayaq
bih.biBitCount = 24 ;
bfh.bfSize = bfh.bfOffBits + 4 * Eni * Hündürlük + Hündürlük * (Eni % 4 ); // Fayl ölçüsü
// Qalanları isə dəyişməz olaraq qalır
// Başlıqları yazın
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL );
// Konvertasiyaya başlayaq
üçün (i = 0; i<
Height;
i++
)
{
ReadFile(hIn, inBuf, Width, & RW, NULL);
üçün (j = 0; j<
Width;
j++
)
{
outBuf[ j].rgbtRed = Palitra[ inBuf[ j] ] .rgbRed ;
outBuf[ j].rgbtGreen = Palitra[ inBuf[ j] ] .rgbGreen ;
outBuf[ j].rgbtBlue = Palitra[ inBuf[ j] ] .rgbBlue ;
}
WriteFile (hOut, outBuf, sizeof (RGBTRIPLE) * Genişlik, & RW, NULL);
// Alignment üçün zibil yazın
WriteFile (hOut, Palitra, Eni % 4 , & RW, NULL );
SetFilePointer(hIn, (3 * En) % 4, NULL, FILE_CURRENT) ;
}
inBuf-da silin;
outBuf silin;
CloseHandle(hIn);
CloseHandle(hOut);
DOĞRU qaytarın;
}
Mənbə və təyinat fayllarının adları müvafiq olaraq funksiyaya ötürülməlidir.
BMP faylının açılması ilə bağlı problemlərin ən çox yayılmış səbəbi kompüterinizdə quraşdırılmış müvafiq proqramların olmamasıdır. Bu halda, BMP formatında fayllara xidmət edən proqramı tapmaq, yükləmək və quraşdırmaq kifayətdir - belə proqramlar aşağıda mövcuddur.
Axtarış sistemi
Fayl uzantısını daxil edin
Kömək edin
İpucu
Nəzərə alın ki, kompüterimizin oxumadığı fayllardan bəzi kodlaşdırılmış məlumatlara bəzən Notepad-da baxmaq olar. Bu şəkildə mətn və ya rəqəmlərin fraqmentlərini oxuyacağıq - Bu metodun BMP faylları vəziyyətində də işlədiyini yoxlamağa dəyər.
Siyahıdakı proqram artıq quraşdırılıbsa nə etməli?
Çox vaxt quraşdırılmış proqram avtomatik olaraq BMP faylına keçid etməlidir. Əgər bu baş vermirsə, onda BMP faylı yeni quraşdırılmış proqramla uğurla əl ilə əlaqələndirilə bilər. Sadəcə BMP faylına sağ klikləyin və sonra mövcud siyahıdan "Defolt proqramı seçin" seçimini seçin. Sonra "Görünüş" seçimini seçməli və sevimli tətbiqinizi tapmalısınız. Daxil edilmiş dəyişikliklər "OK" seçimi ilə təsdiqlənməlidir.
BMP faylını açan proqramlar
Windows
MacOS
Niyə BMP faylını aça bilmirəm?
BMP faylları ilə bağlı problemlərin başqa səbəbləri də ola bilər. Bəzən hətta BMP fayllarını dəstəkləyən proqram təminatını kompüterinizə quraşdırmaq belə problemi həll etməyəcək. BMP faylını aça bilməməyin və onunla işləməyin səbəbi də ola bilər:
Reyestr qeydlərində uyğun olmayan BMP fayl assosiasiyaları
- açdığımız BMP faylının pozulması
- BMP fayl infeksiyası (viruslar)
- çox az kompüter resursu
- köhnəlmiş sürücülər
- BMP uzantısının Windows reyestrindən çıxarılması
- BMP genişləndirilməsini dəstəkləyən proqramın natamam quraşdırılması
Bu problemlərin həlli BMP fayllarının sərbəst açılması və onlarla işləməsi ilə nəticələnməlidir. Kompüterinizdə hələ də fayllarla bağlı problemlər varsa, dəqiq səbəbi müəyyən edəcək bir mütəxəssisin köməyinə müraciət etməlisiniz.
Kompüterim fayl uzantılarını göstərmir, nə etməliyəm?
Standart Windows sistem parametrlərində kompüter istifadəçisi BMP fayl uzantısını görmür. Bu parametrlərdə uğurla dəyişdirilə bilər. Sadəcə "İdarəetmə Paneli" na gedin və "Görünüş və Fərdiləşdirmə" seçin. Sonra "Qovluq Seçimləri" na getmək və "Görünüş"ü açmaq lazımdır. "Görünüş" sekmesinde "Məlum fayl növlərinin uzantılarını gizlət" seçimi var - bu seçimi seçməli və "OK" düyməsini basaraq əməliyyatı təsdiq etməlisiniz. Bu nöqtədə, BMP daxil olmaqla, bütün faylların uzantıları fayl adına görə çeşidlənmiş görünməlidir.
Elan
BMP Raster şəkil faylı formatı
BMP (bitmap faylı, cihazdan müstəqil bitmap fayl formatı) rəqəmsal bitmap şəkillərini displey cihazından ayrı saxlamaq üçün istifadə olunan bitmap fayllarıdır. Bu fayl növü əvvəllər Microsoft Windows və OS/2-də istifadə edilmişdir. "Raster" termini proqramçıların bitmap ideyasından irəli gəlir. BMP şəkilləri adətən sıxılmamış və ya itkisiz sıxılmışdır (məsələn, ZIP və ya RAR istifadə edərək - faylda lazımsız məlumatların olması səbəbindən). Bu gün JPG üstünlük verilən şəkil formatıdır - əsasən faylların yüklənməsi, göndərilməsi və ya yüklənməsi zamanı problemlər və ya gecikmələr yarada bilən BMP-nin böyük fayl ölçüsünə görə.
BMP faylları haqqında texniki məlumat
BMP faylları verilənlərin sıxılması, rəng profilləri və ya alfa kanalları olmadan müxtəlif ölçülü, rənglər və rəng dərinliklərində 2D şəkillər kimi saxlanılır. BMP şəkilləri cihazdan müstəqil bitmap (DIB) formatlarında saxlanılır, yəni təsvirin sistem xüsusiyyətlərindən çox rəngləri var. Bu, bəzi BMP şəkillərinin müxtəlif kompüterlərdə niyə fərqli göründüyünü izah edir. BMP şəkillərinə kompüter və televiziya ekranları daxil olmaqla istənilən cihazda baxmaq olar. Patentlərin olmaması bu təsvir tipini geniş çeşidli cihazlar üçün məşhur formata çevirdi.
BMP formatı haqqında əlavə məlumat
Fayl uzantısı | .bmp |
Fayl kateqoriyası | |
Nümunə fayl | (2,7 MiB) (487,85 KB) |
Əlaqədar proqramlar | Adobe Photoshop MS Paint Microsoft Foto Redaktoru Boya fırçası |