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.
biBitCount | Paletti tai ei-palettimuoto | Suurin mahdollinen määrä värejä | Huomautuksia | 1 | Paletti | 2 | 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 | Paletti | 16 | 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 | Paletti | 256 | 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 palettia | 2^16 tai 2^15 | Tä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 palettia | 2^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 palettia | 2^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
Tiedostopääte | .bmp |
Tiedostoluokka | |
Esimerkkitiedosto | (2,7 MiB) (487,85 KiB) |
Aiheeseen liittyvät ohjelmat | Adobe Photoshop MS Paint Microsoft Photo Editor Pensseli |