BMP (bittikartta) -tietomuoto. Kuinka avata .BMP-tiedosto? Kuinka avata bmp-tiedosto Windows 7: ssä

Tämä artikkeli kertoo, miltä bmp-grafiikkamuoto näyttää. Vaikka tämä on yksi yksinkertaisimmista muodoista, koska tästä muodosta on monia muunnelmia, kaikki kohdat eivät ole ilmeisiä. Joten, lopeta veden kaataminen, aloitetaan.

Muotorakenteet

Bmp-muoto (sanoista BitMaP - bittikartta tai venäjäksi bittitaulukko) on pakkaamaton (enimmäkseen) Windows-käyttöjärjestelmässä melko helppolukuinen ja näytettävä kuva, jossa on erityiset API-toiminnot, jotka auttavat.

Ensin annetaan graafinen esitys tiedoista bmp-muodossa (kuva otettu MSDN:stä).

Alussa on tiedoston otsikko (BITMAPFILEHEADER). Sitä kuvataan seuraavasti:

bfType määrittää tiedostotyypin. Tässä hänen pitäisi olla BM. Jos avaat minkä tahansa BMP-tiedoston tekstieditorissa (tai vielä parempaa, heksadesimaalieditorissa), näet, että kaksi ensimmäistä merkkiä ovat BM (sanasta BitMap, kuten luultavasti jo arvasit).
bfSize on itse tiedoston koko tavuina. Tarkkaan ottaen sinun pitäisi laskea se (mikä on suositeltavaa), mutta asetin tiedostokoon väärin (tosin en tarkoituksella :)) eikä ongelmia ollut (ACDSee luettu ilman ongelmia, ohjelmani toimi), mutta en suosittele sinulle kirjoita se tarkoituksella väärin, yhtäkkiä tulee tunnollinen ohjelma, joka vertaa tätä kokoa todelliseen ja päättää, että se ei ole bmp, vaan jotain muuta. Ihannetapauksessa kaikkien ohjelmien tulisi varmistaa, että se on todellinen bmp eikä väärennös, ensinnäkin, että bfType sisältää "BM" (ilman lainausmerkkejä), ja toiseksi, että bfSize on sama kuin tiedostokoko .
bfReserved1 ja bfReserved2 on varattu ja niiden on oltava nolla.
bfOffBits. Tämä on yksi tärkeimmistä aloista tässä rakenteessa. Se näyttää, mistä itse bittikartta alkaa suhteessa tiedoston alkuun (tai kuten MSDN sanoo, "BITMAPFILEHEADER-rakenteen alusta"), joka kuvaa kuvaa. Eli, jotta pääset taatusti taulukon alkuun, sinun on kirjoitettava:

typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
PITKÄ bileveys;
PITKÄ bikorkeus;
WORD kaksitasot;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
PITKÄ biXPelsPerMeter;
PITKÄ biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;

biSize on itse rakenteen koko. Se on alustettava seuraavasti: bih.biSize = sizeof(BITMAPINFOHEADER);
Tässä taas oletetaan, että bih ilmoitetaan seuraavasti: BITMAPINFOHEADER bih;
biWidth ja biHeight aseta kuvan leveys ja korkeus pikseleinä.
biPlanes määrittää koneiden lukumäärän. Toistaiseksi se on aina 1.
biBitCount- Bittien määrä pikseliä kohden. Puhumme tästä lisää alla.
biCompression ilmaisee pakkaustyypin. Älä hämmästy tai pelkää, että bmp kokee yhtäkkiä pakkauksen. En ole henkilökohtaisesti nähnyt useampaa kuin yhtä pakattua bmp:tä (mutta en väitä, etteikö niitä ole olemassa). Jos pakkausta ei ole, tämän lipun arvoksi on asetettava BI_RGB. Tässä artikkelissa puhumme pakkaamattomasta muodosta, joten en edes luettele muita lippuja. Näyttää siltä, ​​että samaa rakennetta käytetään JPEG- ja PNG-tiedostoissa, koska Windows 98:sta alkaen ilmestyi vaihtoehdot BI_JPEG, mikä osoittaa, että tämä kuva on JPEG ja BI_PNG, että se on PNG (en tiedä mitään Jpeg-muodosta, Tein juuri nämä johtopäätökset MSDN:ssä kirjoitetun perusteella).
biSizeImage ilmaisee kuvan koon tavuina. Jos kuva on pakkaamaton (eli edellisen kentän arvoksi on asetettu BI_RGB), tähän tulee kirjoittaa nolla. biXPelsPerMeter Ja biYPelsPerMeter tarkoittavat vastaavasti vaaka- ja pystyresoluutiota (pikseleinä metriä kohti) lopullisessa laitteessa, jolle bittikartta (rasteri) tulostetaan. Sovellus voi käyttää tätä arvoa valitakseen resurssien joukosta sopivimman bittikartan halutulle laitteelle. Tosiasia on, että bmp-muoto on pohjimmiltaan laitteistosta riippumaton rasteri, eli kun saadun ulkoasu ei riipu siitä, mihin tämä rasteri heijastetaan (niin sanotusti). Esimerkiksi kuva näyttää samalta riippumatta siitä, onko se piirretty näyttöruudulle vai tulostettu tulostimelle. Mutta laitteiden resoluutio on erilainen, ja juuri sopivimman kuvan valitsemiseksi käytettävissä olevista parametreista käytetään näitä parametreja.
biClrUsed määrittää käytettyjen värien määrän taulukosta. Jos tämä arvo on nolla, rasteri käyttää biBitCount-arvon sallimaa enimmäismäärää värejä. Tämä koskee vain pakattuja kuvia. Jos biClrUsed on muu kuin nolla ja biBitCount on alle 16, biClrUsed määrittää käytettävissä olevien grafiikkamoottorin tai laiteohjaimen värien nykyisen määrän. Jos biBitCount on suurempi tai yhtä suuri kuin 16, biClrUsed määrittää nykyisen järjestelmäpaletin optimointiin käytetyn väritaulukon koon.
biClrTärkeää- tämä on tärkeiden värien määrä. Määrittää piirustuksen kuvaamiseen tarvittavien värien määrän. Jos tämä arvo on 0 (kuten se yleensä on), kaikki värit katsotaan tärkeiksi.

BMP-muotojen tyypit

Kaiken tyyppiset bmp-muodot ehdollisesti voidaan jakaa kahteen tyyppiin: paletti ja ei-paletti. Eli käytetäänkö palettia tietyssä muodossa vai ei. Huomaa, että paletti voi olla jopa palettivapaassa muodossa, mutta sitä ei käytetä siellä. Palettittomassa bmp:ssä väri lasketaan suoraan tiedostoon tulevista bitteistä alkaen tietystä paikasta. Ja paleteissa jokainen tavu kuvaa yhtä tai useampaa pikseliä, ja tavun (tai bittien) arvot ovat paletin väriindeksi. Aluksi tarjoan taulukon, jossa vertaillaan mahdollisia vaihtoehtoja. Kuvan tyyppi (paletti tai palettiton) riippuu siitä, kuinka monta bittiä pikseliä kohden annetaan, eli BITMAPINFOHEADER-rakenteen biBitCount-arvosta.

biBitCountPaletti tai ei-palettimuotoSuurin mahdollinen määrä värejäHuomautuksia 1 Paletti2 Kaksivärinen palettikuva, ei välttämättä mustavalkoinen. Jos rasteribitti (joka on juuri alla) nollataan (yhtä kuin 0), tämä tarkoittaa, että paletin ensimmäisen värin tulee olla tässä paikassa ja jos se on asetettu (yhtä kuin 1), toisen. 4 Paletti16 Jokainen tavu kuvaa 2 pikseliä. Tässä on esimerkki MSDN:stä. Jos kuvan ensimmäinen tavu on 0x1F, se vastaa kahta pikseliä, ensimmäisen väri on paletin toinen väri (koska lähtölaskenta alkaa nollasta), ja toinen pikseli on paletin 16. väri. 8 Paletti256 Yksi yleisimmistä vaihtoehdoista. Mutta samalla ne yksinkertaisimmat. Paletti vie yhden kilotavun (mutta on parempi olla laskematta siihen). Yksi tavu on yksi väri. Lisäksi sen arvo on paletin värinumero. 16 Ei palettia2^16 tai 2^15Tämä on hämmentävämpi vaihtoehto. Aloitetaan siitä, että se on palettiton, eli joka toinen tavu (yksi WORD-sana) rasterissa määrittelee yksiselitteisesti yhden pikselin. Mutta tässä tapahtuu: bittejä on 16 ja värikomponentteja 3 (punainen, vihreä, sininen). Mutta 16 ei halua jakaa kolmella. Siksi tässä on kaksi vaihtoehtoa. Ensimmäinen on käyttää ei 16, vaan 15 bittiä, sitten jokaiselle värikomponentille on 5 bittiä. Tällä tavalla voimme käyttää enintään 2^15 = 32768 väriä ja saada kolminkertaisen R-G-B = 5-5-5. Mutta sitten koko osa 16:sta menee hukkaan turhaan. Mutta sattuu niin, että silmämme näkevät kaikkien värien joukossa vihreän paremmin, joten päätimme antaa tämän yhden palan vihreälle komponentille, eli sitten saamme kolminkertainen R-G-B = 5-6-5, ja nyt voimme käyttää 2^16 = 65536 väriä. Mutta epämiellyttävin asia on, että käytetään molempia vaihtoehtoja. MSDN ehdottaa, että käytettyjen värien lukumäärän erottamiseksi täytä BITMAPINFOHEADER-rakenteen biClrUsed-kenttä tällä arvolla. Kunkin komponentin valitsemiseksi sinun on käytettävä seuraavia maskeja. 5-5-5-muodolle: 0x001F siniselle komponentille, 0x03E0 vihreälle ja 0x7C00 punaiselle. 5-6-5-muodossa: 0x001F - sininen, 0x07E0 - vihreä ja 0xF800 punainen komponentit, vastaavasti. 24 Ei palettia2^24 Ja tämä on yksinkertaisin muoto. Tässä 3 tavua määrittelee 3 värikomponenttia. Eli yksi komponentti tavua kohden. Luemme yksinkertaisesti RGBTRIPLE-rakenteen ja käytämme sen kenttiä rgbtBlue, rgbtGreen, rgbtRed. Ne menevät siinä järjestyksessä. 32 Ei palettia2^32 Tässä 4 tavua määrittelee 3 komponenttia. Yhtä tavua ei kuitenkaan käytetä. Sitä voidaan käyttää esimerkiksi alfakanavalle (läpinäkyvyys). Tässä tapauksessa on kätevää lukea rasteri käyttämällä RGBQUAD-rakenteita, jotka kuvataan seuraavasti:

Tietojen tallennus bmp-muodossa

No, nyt päästään mielenkiintoisimpaan osaan. BITMAPFILEHEADER- ja BITMAPINFOHEADER-rakenteiden jälkeen tulee paletti. Lisäksi, jos muoto on palettiton, sitä ei välttämättä ole siellä, mutta sinun ei pitäisi luottaa siihen. Tosiasia on, että kun aloin ymmärtämään bmp-muotoa, luin eräästä kirjasta, että jos formaatti on palettiton, niin siinä ei ole palettia ollenkaan. Kuvia oli jopa kaksi - muotokaavioita: toisessa paletti, toisessa ilman. Ja tuolloin kirjoitin ohjelmaa, joka toimii ahkerasti bmp-tiedostojen kanssa. Ja minun piti muuntaa saapuvat kuvat 256 väristä 24-bittisiksi (jos sellaisia ​​on) väliaikaisiksi tiedostoiksi. Ja en yksinkertaisesti luonut palettia 24-bittisenä (bfOffBits BITMAPFILEHEADER-rakenteesta vastasi koon(BITMAPFILEHEADER) + sizeof (BITMAPFILEHEADER) summaa, ja jätin saapuvat 24-bittiset ennalleen. 256-värisillä rasterilla kaikki toimi niinkuin piti, kunnes en törmännyt 24-bittiseen kuvaan, jonka alareunassa oli roskaa vaaditun osan sijaan. En heti ymmärtänyt mikä oli vialla. Kunnes vertasin alkuperäisen tiedoston kokoa teoreettinen, jonka olisi pitänyt olla jos palettia ei olisi ollut. Ero osoittautui tasan 1 KB (tasalleen 1024 tavua) Paletti oli. Siksi älä koskaan luota siihen onko palettia äläkä luota siihen kokoa (vaikka kaikkien löytämieni kuvien palettikoko oli 256 väriä eli 1 kt), siirry aina tiedoston läpi rasterin alkuun käyttämällä bfOffBitsejä. Paletti on joukko RGBQUAD-rakenteita, jotka seuraavat toisiaan. Jopa jos paletissa ei käytetä kaikkia värejä (mutta vain esim. 16), niin usein paletille varataan silti 256 kenttää. Ja 256 * 4 = 1024, jossa 4 on RGBQUAD-rakenteen koko, eli sama kilotavu saadaan.

Välittömästi paletin jälkeen tulee itse rasteri. Tässä asiat menevät hämmentävämmiksi. Ensinnäkin pikselit kuvataan tässä yllä olevan taulukon mukaisesti, riippuen muodosta. Ja ne voivat itse sisältää värikomponenttien arvon (palettittomille) tai ne voivat olla palettitaulukon indeksejä. Itse kuva tallennetaan rivi riviltä. Toiseksi kuva näyttää olevan ylösalaisin. Toisin sanoen alarivi kirjoitetaan ensin, sitten toiseksi viimeinen rivi ja niin edelleen aivan alkuun asti. Ja kolmanneksi, kuten kirjoitettu, jos rasteriviivan koko ei ole 4:n kerrannainen, se täytetään 1-3 tyhjällä (nolla) tavulla siten, että rivin pituus on kappaleen kerrannainen. Tämä on epämiellyttävin asia. Tosiasia on, että jokaisessa muodossa sinun on säädettävä tätä tyhjien tavujen määrää (vaikka tykkään kirjoittaa osan paletista sinne, en vain halua luoda ylimääräisiä "nolla"-muuttujia, jos nämä tavut ohitetaan joka tapauksessa eikä kukaan tarvitsee niitä). Tarjoan taulukon kaavoineen, jotka osoittavat, missä muodossa kuinka monta tavua rivin loppuun tulee lisätä. Siellä Leveys-muuttuja, kuten saatat arvata, tarkoittaa kuvan leveyttä. Kaikki nämä kaavat luotiin kokeellisesti. Annan esimerkin vain eniten käytetyistä muodoista. Loput voit kirjoittaa itse.

Esimerkkiohjelmat

Voit ladata kaikki lähteet. En kirjoita tänne paljoa. Annan vain funktiot kommenteilla.

Hei 1. Kuvan luominen bmp-muodossa.
Tässä luodaan yksivärinen kuva. Tällaisia ​​toimintoja on kolme esimerkkiä: bmp 8, 16 ja 24 bitin luominen. Annan vain 16-bittisen.

// Luodaan kuva bmp-muodossa 16 bittiä kuten 5-5-5, josta tulee yksinkertaisesti yksivärinen
void CreateBmp555(merkki * fnimi, WORD-väri)
{
KÄSITTELY hFile;
DWORD RW;
int i, j;

// Ilmoita tarvittavat rakenteet
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
BYTE-paletti[1024]; // Paletti

// Otetaan kuva, jonka koko on 35 x 50 pikseliä
int Leveys = 35;
int Korkeus = 50 ;

memset(paletti, 0, 1024); // Paletissa on nollia, täytä ne
memset (&bfh, 0 , sizeof (bfh) );

Bfh.bfType = 0x4D42 ; // Merkitään, että tämä on bmp "BM"
bfh.bfOffBits = koko (bfh) + koko (bih) + 1024 ; // Paletti vie 1 kt, mutta emme käytä sitä
bfh.bfSize = bfh.bfOffBits +
koko(väri) * Leveys * Korkeus +
Korkeus * ((koko (väri) * Leveys) % 4 ); // Laske lopullisen tiedoston koko
memset (& bih, 0 , sizeof (bih) ) ;
bih.biSize = koko(bih); // Näin sen kuuluu olla
bih.biBitCount = 16 ; // 16 bittiä pikseliä kohden
bih.biClrUsed = 32768; // Käytämme 5-5-5
bih.biCompression = BI_RGB; // Ilman pakkausta
bih.biHeight = Korkeus;
bih.biWidth = Leveys;
bih.biPlanes = 1 ; // Pitäisi olla 1
// Ja loput kentät pysyvät 0:na

HFile = LuoTiedosto(fnimi, YLEINEN_KIRJOITUS, 0, NULL, LUO_AINA, 0, NULL);
if (hFile == INVALID_HANDLE_VALUE)
paluu;

// Kirjoita otsikot
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL ) ;
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL ) ;

// Kirjoita paletti
WriteFile(hFile, Paletti, 1024, &RW, NULL);
for (i = 0; i< Height; i++ )
{
varten (j = 0; j< Width; j++ )
{
WriteFile (hFile, & color, sizeof (color) , & RW, NULL ) ;
}

// Tasaa reunan kanssa
WriteFile (hFile, Paletti, (koko (väri) * Leveys) % 4 , & RW, NULL ) ;
}
CloseHandle(hFile) ;
}

väri - kuvan väri. Tämän muuttujan arvo on täytettävä ensimmäisen taulukon mukaisesti. Voit tarkastella tuloksena olevaa kuvaa esimerkiksi ACDSeessä. Yritin juuri avata sen Photoshopissa, mutta kävi ilmi, että se ei voi lukea niitä tässä muodossa. Mutta voit :).

Esimerkki 2. Kuvan muuntaminen 8-bittisestä formaatista (256 väriä) 24-bittiseksi.

BOOL Convert256To24 (char * fin, char * fout)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
int Leveys, Korkeus;
RGBQUAD-paletti[256] ;
BYTE * inBuf;
RGBTRIPLE * outBuf;
HANDLE hIn, hOut;
DWORD RW;
DWORD OffBits;
int i, j;

HIn = CreateFile (fin, YLEINEN_LUETTU, TIEDOSTO_JAKO_LUETTU, NULL, OPEN_EXISTING, 0, NULL) ;
if (hIn == INVALID_HANDLE_VALUE)
palauttaa EPÄTOSI;

HOut = LuoTiedosto(fout, YLEINEN_KIRJOITUS, 0, NULL, LUO_AINA, 0, NULL);
if (hOut == INVALID_HANDLE_VALUE)
{
CloseHandle(hIn);
palauttaa EPÄTOSI;
}

// Lue tiedot
ReadFile (hIn, & bfh, sizeof (bfh) , & RW, NULL ) ;
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL ) ;
ReadFile (hIn, Paletti, 256 * koko (RGBQUAD) , & RW, NULL ) ;

// Aseta osoitin rasterin alkuun
SetFilePointer (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
Leveys = bih.biWidth ;
Korkeus = bih.biHeight ;
OffBits = bfh.bfOffBits ;

// Varaa muistia
inBuf = uusi BYTE [Leveys];
outBuf = uusi RGBTRIPLE [Leveys];

// Täytä otsikot
bfh.bfOffBits = koko (bfh) + koko (bih) ; // Ei kirjoiteta palettia
bih.biBitCount = 24;
bfh.bfSize = bfh.bfOffBits + 4 * Leveys * Korkeus + Korkeus * (Leveys % 4 ) ; // Tiedoston koko

// Ja loput pysyvät ennallaan
// Kirjoita otsikot
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL ) ;
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL ) ;

// Aloitetaan muuntaminen
for (i = 0; i< Height; i++ )
{
ReadFile (hIn, inBuf, Width, & RW, NULL );
varten (j = 0; j< Width; j++ )
{
outBuf[ j].rgbtRed = Paletti[ inBuf[ j] ] .rgbRed ;
outBuf[ j].rgbtGreen = Paletti[ inBuf[ j] ] .rgbVihreä ;
outBuf[ j].rgbtBlue = Paletti[ inBuf[ j] ] .rgbBlue ;
}
WriteFile (hOut, outBuf, koko (RGBTRIPLE) * Leveys, & RW, NULL );

// Kirjoita roskaa tasausta varten
WriteFile (hOut, Paletti, Leveys % 4 , & RW, NULL );
SetFilePointer(hIn, (3 * Leveys) % 4, NULL, TIEDOSTO_NYKYINEN) ;
}

poista inBuf;
poista outBuf;
CloseHandle(hIn);
CloseHandle(hOut);
palauttaa TRUE;
}

Lähde- ja kohdetiedostojen nimet on välitettävä funktiolle.

Yleisin syy ongelmiin BMP -tiedoston avaamisessa on yksinkertaisesti sopivien sovellusten puuttuminen tietokoneellesi. Tässä tapauksessa riittää löytää, ladata ja asentaa sovellus, joka palvelee tiedostoja BMP-muodossa - tällaiset ohjelmat ovat saatavilla alla.

Hakujärjestelmä

Anna tiedostopääte

auta

Vihje

Huomaa, että joitakin koodattuja tietoja tiedostoista, joita tietokoneemme ei lue, voidaan joskus tarkastella Muistiossa. Tällä tavalla luemme tekstinpätkiä tai numeroita - Kannattaa tarkistaa toimiiko tämä menetelmä myös BMP-tiedostojen tapauksessa.

Mitä tehdä, jos luettelossa oleva sovellus on jo asennettu?

Usein asennetun sovelluksen pitäisi automaattisesti linkittää BMP-tiedostoon. Jos näin ei tapahdu, BMP-tiedosto voidaan yhdistää onnistuneesti manuaalisesti juuri asennettuun sovellukseen. Napsauta vain hiiren kakkospainikkeella BMP-tiedostoa ja valitse sitten käytettävissä olevasta luettelosta "Valitse oletusohjelma" -vaihtoehto. Sitten sinun on valittava "Näytä" -vaihtoehto ja löydettävä suosikkisovelluksesi. Syötetyt muutokset on hyväksyttävä "OK"-vaihtoehdolla.

Ohjelmat, jotka avaavat BMP-tiedoston

Windows
Mac käyttöjärjestelmä

Miksi en voi avata BMP-tiedostoa?

BMP-tiedostojen ongelmilla voi olla myös muita syitä. Joskus edes BMP-tiedostoja tukevan ohjelmiston asentaminen tietokoneeseen ei ratkaise ongelmaa. Syy siihen, ettei BMP-tiedostoa voi avata ja työskennellä sen kanssa, voi myös olla:

Sopimattomat BMP-tiedostoliitokset rekisterimerkinnöissä
- avaamamme BMP-tiedoston vioittuminen
- BMP-tiedostoinfektio (virukset)
- liian vähän tietokoneresursseja
- vanhentuneet ajurit
- BMP-laajennuksen poistaminen Windowsin rekisteristä
- BMP-laajennusta tukevan ohjelman epätäydellinen asennus

Näiden ongelmien korjaamisen pitäisi johtaa BMP-tiedostojen vapaaseen avaamiseen ja niiden käsittelyyn. Jos tietokoneessasi on edelleen ongelmia tiedostojen kanssa, sinun on otettava avuksi asiantuntija, joka selvittää tarkan syyn.

Tietokoneeni ei näytä tiedostopäätteitä, mitä minun pitäisi tehdä?

Windowsin tavallisissa järjestelmäasetuksissa tietokoneen käyttäjä ei näe BMP-tiedostotunnistetta. Tämän voi muuttaa onnistuneesti asetuksista. Mene vain "Ohjauspaneeliin" ja valitse "Näytä ja mukauttaminen". Sitten sinun on siirryttävä "Kansion asetukset" -kohtaan ja avattava "Näytä". "Näytä"-välilehdessä on vaihtoehto "Piilota tunnettujen tiedostotyyppien laajennukset" - sinun on valittava tämä vaihtoehto ja vahvistettava toiminto napsauttamalla "OK" -painiketta. Tässä vaiheessa kaikkien tiedostojen, mukaan lukien BMP, tunnisteiden pitäisi näkyä lajiteltuina tiedostonimen mukaan.

Ilmoitus

BMP-rasterikuvatiedostomuoto

BMP (bittikarttatiedosto, laiteriippumaton bittikarttatiedostomuoto) ovat bittikarttatiedostoja, joita käytetään digitaalisten bittikarttojen tallentamiseen erillään näyttölaitteesta. Tätä tiedostotyyppiä käytettiin aiemmin Microsoft Windowsissa ja OS/2:ssa. Termi "rasteri" tulee ohjelmoijien ajatuksesta bittikartta. BMP-kuvat ovat yleensä pakkaamattomia tai häviöttömästi pakattuja (esimerkiksi ZIP- tai RAR-muodossa - tiedostossa on ylimääräisiä tietoja). Nykyään JPG on suosituin kuvamuoto - pääasiassa BMP:n suuren tiedostokoon vuoksi, mikä voi aiheuttaa ongelmia tai viiveitä tiedostojen lataamisessa, lähettämisessä tai lataamisessa.

Tekniset tiedot BMP-tiedostoista

BMP-tiedostot tallennetaan erikokoisina, -värisinä ja -syvyyksin 2D-kuvina ilman tietojen pakkausta, väriprofiileja tai alfakanavia. BMP-kuvat tallennetaan laiteriippumattomissa bittikarttamuodoissa (DIB), mikä tarkoittaa, että kuvassa on värejä järjestelmätietojen sijaan. Tämä selittää, miksi jotkin BMP-kuvat näyttävät erilaisilta eri tietokoneissa. BMP-kuvia voidaan katsella millä tahansa laitteella, mukaan lukien tietokoneen ja television näytöt. Patenttien puute on tehnyt tästä kuvatyypistä suositun muodon monille laitteille.

Lisätietoja BMP-muodosta

Toivomme, että auttoimme sinua ratkaisemaan BMP-tiedoston ongelmasi. Jos et tiedä, mistä voit ladata sovelluksen luettelostamme, napsauta linkkiä (tämä on ohjelman nimi) - Löydät tarkemmat tiedot siitä, mistä voit ladata tarvittavan sovelluksen suojatun asennusversion.

Mikä muu voisi aiheuttaa ongelmia?

Syitä siihen, miksi et voi avata BMP-tiedostoa, voi olla muitakin syitä (ei pelkästään vastaavan sovelluksen puute).
Ensinnäkin- BMP-tiedosto voi olla väärin linkitetty (ei yhteensopiva) sitä tukevan asennetun sovelluksen kanssa. Tässä tapauksessa sinun on vaihdettava tämä yhteys itse. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella muokattavaa BMP-tiedostoa ja napsauttamalla vaihtoehtoa "Avaa kanssa" ja valitse sitten asentamasi ohjelma luettelosta. Tämän toiminnon jälkeen BMP-tiedoston avaamisongelmien pitäisi hävitä kokonaan.
toiseksi- tiedosto, jonka haluat avata, voi yksinkertaisesti olla vioittunut. Tässä tapauksessa olisi parasta etsiä siitä uusi versio tai ladata se uudelleen samasta lähteestä (ehkä jostain syystä edellisessä istunnossa BMP-tiedoston lataus ei päättynyt eikä sitä voitu avata oikein) .

Haluatko auttaa?

Jos sinulla on lisätietoja BMP-tiedostopäätteestä, olemme kiitollisia, jos jaat sen sivustomme käyttäjien kanssa. Käytä löytyvää lomaketta ja lähetä meille tietosi BMP-tiedostosta.

Hyvin usein grafiikan kanssa työskennellessään monet käyttäjät kohtaavat kuvia BMP-muodossa. Nykyään harvat ihmiset tietävät, mitä se on. Nyt tarkastelemme BMP-graafista muotoa yksityiskohtaisemmin. Lisäksi emme vain jäljitä sen alkuperän ja kehityksen historiaa, vaan tarjoamme myös joitain yksinkertaisia ​​​​menetelmiä sen muuntamiseksi muihin suosittuihin muotoihin.

Mikä on BMP-muoto?

Älä mene liian teknisiin yksityiskohtiin. Huomaa, että BMP on muoto graafisten kuvien tallentamiseen bittikartan muodossa, joka perustuu yksikerroksisiin rastereihin.

Kyllä, tämä on totta. Aluksi BMP-kuvamuotoa sovellettiin yksinomaan rasterikuviin, ja se oli yleinen (standardi) laajennus kaikille grafiikoille yleensä.

Alkuperähistoria

Tämän muodon luomisen historia liittyy erottamattomasti Microsoft Corporationiin, joka toteutti sen ensin pääaiheensa - Windows-käyttöjärjestelmään. Lisäksi Applen kanssa jatkuvasta kilpailusta huolimatta tuki tämän tyyppiselle grafiikkalle ilmoitettiin myöhemmin OS/2-käyttöjärjestelmälle.

Totta, sen jälkeen BMP-grafiikkamuoto on kokenut monia muutoksia. Alun perin oletettiin, että kuvan rakenne rakennettiin pienten neliöiden yhdistelmälle, joka tunnetaan nykyään pikseleinä. Uskotaan, että kuvan jokainen pikseli voi sisältää dataa eri värisyvyydestä (bittien määrä tällaista grafiikkayksikköä kohti). Värin bittisyvyyden ilmaisemiseen käytetyt arvot ovat seuraavat: 1, 2, 4, 8, 16, 24, 32, 48, 64 bittiä.

Tässä tapauksessa alle 8 arvoille väri ilmoitetaan vain sävypaletin (taulukon) indeksillä, ja indeksin yläpuolella olevat arvot otetaan tavallisesta RGB-mallista. Jälkimmäinen sisältää värivaihteluita, jotka saadaan sekoittamalla punaista, vihreää ja sinistä.

Kuten on jo selvää, mitä suurempi bittisyvyys, sitä suurempi lopullinen kuva on. On sanottava, että BMP-tiedostomuoto niin kaukaisina aikoina kuin nykyäänkin näyttää eräänlaiselta mastodonilta, koska sen koko on melko suuri. Tämä johtuu siitä, että itse kuva on pakkaamaton verrattuna esimerkiksi samaan JPG-muotoon. Saman kuvan sisältävien erityyppisten tiedostojen koko voi vaihdella paitsi satoja - kymmeniä tuhansia kertoja.

Kuinka avata BMP-tiedostomuoto?

Mitä tulee tämäntyyppisten kuvien avaamiseen, kaikissa Windows-käyttöjärjestelmissä on sisäänrakennetut työkalut tätä varten.

Kunnes katselusovelluksia luotiin, päämuokkaustyökaluna pysyi alkuperäinen Paint-ohjelma, joka toimitettiin minkä tahansa Windows-version mukana. Tuolloin tämä sovellus tuki yksinomaan BMP-muotoa.

Kuten on jo selvää, tekniikan kehittymisen ja itse muodon kehittymisen myötä myös ohjelma muuttui. Nykyään Paintin ominaisuudet ovat paljon paremmat kuin sen alkuperäisissä versioissa.

Lisäksi grafiikan katselu- ja muokkausohjelmien tultua käyttöön BMP-tiedostomuoto julkistettiin teknisessä tuessa ja niissä. Se ei ole yllättävää, koska juuri hän oli lähes kaikkien nykyään tunnettujen kuvatiedostotunnisteiden "isoisoisä".

Löydät paljon ohjelmia tällaisten graafisten tietojen kanssa työskentelemiseen. Katselutyökalujen joukossa, esimerkiksi Windowsissa, voit käyttää tavallista työkalua; kolmannen osapuolen sovellusten joukossa ohjelmistopaketit, kuten ACDSee tai Irfan View ja monet muut, ovat melko suosittuja.

Mitä tulee muokkaukseen, voit käyttää mitä tahansa työhön, esimerkiksi samaa Adobe Photoshopia, Corel Draw'ta tai mitä tahansa muuta graafista editoria, jolla on jopa minimaalinen joukko työkaluja ja ominaisuuksia.

Yksinkertaisin tapa muuntaa BMP-muotoa

Katsotaan nyt kuinka muuttaa BMP-muotoa yksinkertaisimmilla tavoilla. Voit tehdä tämän käyttämällä samoja graafisia muokkausohjelmia.

Jos otamme esimerkkinä tavallisen Paint-sovelluksen, siihen avataan ensin haluttu BMP-tiedosto, jonka jälkeen valitaan "Tiedosto"-valikosta "Tallenna nimellä..." -komento, jossa juuressa, alimmalla rivillä. (pudotusvalikosta), löydät tuetut muodot.

Itse asiassa missä tahansa muussa graafisessa editorissa bittikartan muuntamistekniikka on samanlainen kuin edellä kuvattu. Joistakin sovelluksista löytyy myös vientikomentoja, jotka periaatteessa eivät eroa kovinkaan toisistaan, koska niitä käytettäessä koko prosessi tiivistyy taas siihen, että valitaan jokin muu tuettu grafiikkamuoto kuin alkuperäinen BMP.

Muuntimien käyttö

Yksi helpoimmista tavoista muuntaa erityyppinen kuva BMP-muotoon, puhumattakaan tavallisten Windowsin työkalujen ja graafisten muokkausohjelmien käytöstä, on käyttää erikoistuneita muuntimia, jotka toimivat automaattisesti.

Täällä kaikki on yksinkertaista. Käyttäjä lisää muunnettavat grafiikkatiedostot ohjelmaikkunaan, valitsee sitten lopullisen muodon (tässä tapauksessa BMP) ja paina painiketta aloittaakseen muunnosprosessin. Uuden lomakkeen lopulliset tiedostot tallennetaan kansioon, jonka sijainti on oletusarvoisesti asetettu sovelluksessa tai määritetty manuaalisesti.

Sama pätee muuten käänteiseen prosessiin, kun sinun on muutettava BMP-muoto johonkin toiseen.

Kaikista tämän alueen monista ohjelmista Internetissä voit löytää monia resursseja, joiden avulla voit suorittaa tällaisia ​​muutoksia verkossa. Vain tässä tapauksessa käyttäjä lataa tiedostot sivustolle, valitsee lopullisen muodon ja lataa sitten tuloksen tietokoneelleen. Samaa mieltä, verrattuna kahteen ensimmäiseen menetelmään, se ei ole kovin kätevää.

Johtopäätös

Siinä kaikki, mitä voidaan sanoa pähkinänkuoressa BMP-grafiikkamuodosta. Ilmeisistä syistä ongelman teknistä puolta tiedostorakenteen suhteen ei otettu huomioon. Tällaiset tiedot eivät todennäköisesti kerro keskivertokäyttäjälle mitään.

Lopuksi haluaisin kuitenkin lisätä muutaman sanan graafisten tiedostojen muuntamisesta pakkaamattomaan BMP-muotoon. Tietenkin sen nykyinen versio vie vähemmän levytilaa. Mutta se eroaa silti nykyaikaisemmista pakatuista tietotyypeistä. Periaatteessa itse BMP-muotoa voidaan jopa kutsua hieman vanhentuneeksi, koska harvat ihmiset käyttävät sitä nykyään. Siksi pakattujen muotojen muuntaminen graafisiksi tiedostotyypeiksi .bmp-tunnisteella vaikuttaa tässä vaiheessa selvästi epäkäytännölliseltä.

Tiedostopääte .bmp
Tiedostoluokka
Esimerkkitiedosto (2,7 MiB)
(487,85 KiB)
Aiheeseen liittyvät ohjelmat Adobe Photoshop
MS Paint
Microsoft Photo Editor
Pensseli