BMP (bitmap) məlumat formatı. .BMP faylını necə açmaq olar? Windows 7-də bmp faylını necə açmaq olar

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. biXPelsPerMeterbiYPelsPerMeter 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.

biBitCountPalitra 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 yoxdur2^16 və ya 2^15Bu, ə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 yoxdur2^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 yoxdur2^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

Ümid edirik ki, BMP faylı ilə bağlı probleminizi həll etməyə kömək etdik. Siyahımızdan tətbiqi haradan yükləyə biləcəyinizi bilmirsinizsə, linkə klikləyin (proqramın adı belədir) - Tələb olunan proqramın təhlükəsiz quraşdırma versiyasını harada yükləmək barədə daha ətraflı məlumat tapa bilərsiniz.

Başqa nə problemlər yarada bilər?

BMP faylını aça bilməməyiniz üçün daha çox səbəb ola bilər (yalnız müvafiq proqramın olmaması deyil).
Birincisi- BMP faylı onu dəstəkləmək üçün quraşdırılmış proqramla yanlış əlaqələndirilə bilər (uyğun deyil). Bu vəziyyətdə bu əlaqəni özünüz dəyişdirməlisiniz. Bunu etmək üçün, redaktə etmək istədiyiniz BMP faylına sağ vurun, seçimi basın "Açmaq" və sonra siyahıdan quraşdırdığınız proqramı seçin. Bu hərəkətdən sonra BMP faylının açılması ilə bağlı problemlər tamamilə yox olmalıdır.
İkincisi- açmaq istədiyiniz fayl sadəcə zədələnə bilər. Bu halda, onun yeni versiyasını tapmaq və ya eyni mənbədən yenidən yükləmək daha yaxşı olardı (bəlkə də əvvəlki sessiyada nədənsə BMP faylının yüklənməsi başa çatmayıb və onu düzgün açmaq mümkün olmayıb) .

kömək etmək istəyirsən?

BMP fayl uzantısı haqqında əlavə məlumatınız varsa, onu saytımızın istifadəçiləri ilə paylaşsanız minnətdar olarıq. Yerləşmiş formadan istifadə edin və BMP faylı haqqında məlumatınızı bizə göndərin.

Çox vaxt qrafiklərlə işləyərkən bir çox istifadəçi BMP formatında şəkillərlə qarşılaşır. Bu gün az adam bunun nə olduğunu bilir. İndi biz BMP qrafik formatına daha ətraflı baxacağıq. Üstəlik, biz nəinki onun mənşəyi və təkamül tarixini izləyəcəyik, həm də onu digər məşhur formatlara çevirmək üçün bəzi sadə üsullar təklif edəcəyik.

BMP formatı nədir?

Çox texniki detallara varmayaq. Qeyd edək ki, BMP bir qatlı rasterlərə əsaslanan bitmap şəklində qrafik təsvirlərin saxlanması üçün formatdır.

Bəli bu doğrudur. Başlanğıcda, BMP təsvir formatı yalnız rastr təsvirlərə tətbiq olunurdu və ümumiyyətlə bütün qrafiklər üçün universal (standart) genişlənmə idi.

Mənşə tarixi

Bu formatın yaradılması tarixi onu ilk dəfə əsas beynində - Windows əməliyyat sistemində tətbiq edən Microsoft Korporasiyası ilə ayrılmaz şəkildə bağlıdır. Bundan əlavə, Apple ilə davamlı rəqabətə baxmayaraq, sonradan OS/2 əməliyyat sistemi üçün bu tip qrafika dəstəyi elan edildi.

Düzdür, o vaxtdan bəri BMP qrafik formatı bir çox dəyişikliklərə məruz qaldı. Əvvəlcə təsvirin strukturunun bu gün piksel kimi tanınan kiçik kvadratların birləşməsi üzərində qurulduğu güman edilirdi. Şəkildəki hər bir pikseldə fərqli rəng dərinliyi (belə qrafik vahidə düşən bitlərin sayı) haqqında məlumat ola biləcəyinə inanılır. Rəng bitinin dərinliyini göstərmək üçün istifadə olunan dəyərlər aşağıdakılardır: 1, 2, 4, 8, 16, 24, 32, 48, 64 bit.

Bu halda, 8-dən az olan dəyərlər üçün rəng yalnız çalarlar palitrasının (cədvəl) indeksindən istifadə etməklə göstərilir və indeksdən yuxarı olan dəyərlər üçün standart RGB modelindən götürülür. Sonuncu qırmızı, yaşıl və mavi qarışdırmaqla əldə edilən rəng dəyişikliklərini ehtiva edir.

Artıq aydın olduğu kimi, bit dərinliyi nə qədər yüksək olsa, son görüntünün ölçüsü bir o qədər böyük olacaqdır. Demək lazımdır ki, BMP fayl formatı həm o uzaq dövrlərdə, həm də bu gün bir növ mastodon kimi görünür, çünki ölçüsü kifayət qədər böyükdür. Bu, məsələn, eyni JPG formatı ilə müqayisədə şəklin özünün sıxılmamış olması ilə əlaqədardır. Eyni təsviri ehtiva edən müxtəlif növ uzantıları olan faylların ölçüsü təkcə yüzlərlə deyil, on minlərlə dəfə fərqlənə bilər.

BMP fayl formatını necə açmaq olar?

Bu tip şəkillərin açılmasına gəldikdə, hər hansı bir Windows əməliyyat sistemində bunun üçün daxili alətlər var.

Baxış proqramları yaradılana qədər əsas redaktə vasitəsi Windows-un istənilən versiyasına daxil olan yerli Paint proqramı olaraq qaldı. O zaman bu proqram yalnız BMP formatını dəstəkləyirdi.

Artıq aydın olduğu kimi, texnologiyanın inkişafı və formatın özünün təkamülü ilə proqram da dəyişdi. Bu gün Paint-in imkanları onun ilkin versiyalarından qat-qat böyükdür.

Bundan əlavə, qrafiklərə baxmaq və redaktə etmək üçün proqramların meydana gəlməsi ilə BMP fayl formatı texniki dəstəkdə və onlarda elan edildi. Təəccüblü deyil, çünki bu gün məlum olan demək olar ki, bütün təsvir fayl uzantılarının "ulu babası" məhz o idi.

Bu cür qrafik məlumatlarla işləmək üçün bir çox proqram tapa bilərsiniz. Baxış alətləri arasında, məsələn, Windows-da üçüncü tərəf proqramları arasında standart bir alətdən istifadə edə bilərsiniz, ACDSee və ya İrfan View kimi proqram paketləri və bir çox başqaları olduqca populyardır.

Redaktəyə gəldikdə, iş üçün hər şeydən istifadə edə bilərsiniz, məsələn, eyni Adobe Photoshop, Corel Draw və ya hətta minimal alətlər və imkanlar dəsti olan hər hansı digər qrafik redaktoru.

BMP formatını çevirməyin ən sadə yolu

İndi BMP formatını ən sadə üsullarla necə dəyişdirəcəyimizi görək. Bunun üçün eyni qrafik redaktorlardan istifadə edə bilərsiniz.

Nümunə olaraq standart Paint tətbiqini götürsək, əvvəlcə orada istədiyiniz BMP faylı açılır, bundan sonra "Fayl" menyusundan "Farklı Saxla..." əmri seçilir, kökdə, alt sətirdə. (açılan menyu), dəstəklənən formatları tapa bilərsiniz.

Əslində, hər hansı digər qrafik redaktorda bitmapı çevirmək texnologiyası yuxarıda təsvir edilənə bənzəyir. Bəzi proqramlarda siz həmçinin, prinsipcə, xüsusilə fərqlənməyən ixrac əmrlərini tapa bilərsiniz, çünki onlardan istifadə edərkən bütün prosedur yenidən orijinal BMP-dən başqa dəstəklənən başqa bir qrafik formatı seçməyə başlayır.

Konvertorların istifadəsi

Standart Windows alətləri və qrafik redaktorlarından istifadə etməklə yanaşı, fərqli bir növ təsviri BMP formatına çevirməyin ən asan yollarından biri avtomatik işləyən xüsusi çeviricilərdən istifadə etməkdir.

Burada hər şey sadədir. İstifadəçi proqram pəncərəsinə çevriləcək qrafik faylları əlavə edir, sonra yekun formatı (bu halda BMP) seçir və konvertasiya prosesini başlamaq üçün düyməni sıxır. Yeni formada olan son fayllar, yeri tətbiqdə standart olaraq təyin edilən və ya əl ilə göstərilən qovluqda saxlanacaq.

Yeri gəlmişkən, eyni şey BMP formatını başqa birinə çevirmək lazım olduqda tərs prosesə də aiddir.

İnternetdə bu sahədə olan bütün çoxlu proqramlarla, onlayn olaraq bu cür transformasiyaları həyata keçirməyə imkan verən bir çox resurs tapa bilərsiniz. Yalnız bu halda istifadəçi sayta faylları yükləyir, son formatı seçir, sonra isə nəticəni öz kompüterinə yükləyir. Razılaşın, ilk iki üsulla müqayisədə bu, çox rahat deyil.

Nəticə

Bir sözlə, BMP qrafik formatı haqqında deyilə biləcək hər şey budur. Məlum səbəblərdən fayl strukturu baxımından məsələnin texniki tərəfi nəzərə alınmadı. Bu cür məlumatların orta istifadəçiyə heç nə deməsi ehtimalı yoxdur.

Ancaq yekunda, qrafik faylları sıxılmamış BMP formatına çevirmək haqqında bir neçə söz əlavə etmək istərdim. Təbii ki, onun hazırkı versiyası diskdə daha az yer tutur. Ancaq yenə də daha müasir sıxılmış məlumat növlərindən fərqlənir. Prinsipcə, BMP formatının özünü hətta bir qədər köhnəlmiş adlandırmaq olar, çünki bu gün az adam istifadə edir. Buna görə də, sıxılmış formatları .bmp uzantısı ilə qrafik faylların növünə çevirmək indiki mərhələdə açıq şəkildə qeyri-mümkün görünür.

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ı