Z čoho pozostáva obrázok bmp? Pozrite sa, čo je "BMP" v iných slovníkoch

BMP je populárny obrazový formát bez kompresie dát. Pozrime sa, aké programy môžete použiť na prezeranie obrázkov s týmto rozšírením.

Pravdepodobne už mnohí uhádli, že keďže sa na zobrazovanie obrázkov používa formát BMP, obsah týchto súborov si môžete prezerať pomocou prehliadačov obrázkov a grafických editorov. Túto úlohu navyše zvládnu aj niektoré ďalšie aplikácie, napríklad prehliadače a univerzálne prehliadače. Ďalej sa pozrieme na algoritmus na otváranie súborov BMP pomocou špecifického softvéru.

Metóda 1: Prehliadač obrázkov FastStone

Začnime populárnym prehliadačom obrázkov FastStone Viewer.


Metóda 2: IrfanView

Teraz sa pozrime na proces otvárania BMP v inom populárnom prehliadači obrázkov IrfanView.


Metóda 3: XnView

Ďalším prehliadačom obrázkov, v ktorom sa pozrieme na otvorenie súboru BMP, je XnView.


Metóda 4: Adobe Photoshop

Teraz prejdime k popisu algoritmu akcií na riešenie opísaného problému v grafických editoroch, počnúc populárnou aplikáciou Photoshop.


Hlavnou nevýhodou tejto metódy je, že aplikácia Photoshop je platená.

Metóda 5: Gimp

Ďalším grafickým editorom, ktorý dokáže zobraziť BMP, je Gimp.


Oproti predchádzajúcemu spôsobu tento ťaží z toho, že aplikácia Gimp nevyžaduje za jej používanie platbu.

Metóda 6: OpenOffice

S touto úlohou sa úspešne vyrovná aj grafický editor Draw, ktorý je súčasťou bezplatného balíka OpenOffice.


Metóda 7: Google Chrome

BMP dokážu otvoriť nielen grafické editory a prehliadače obrázkov, ale aj množstvo prehliadačov, napríklad Google Chrome.


Metóda 8: Univerzálny prehliadač

Ďalšou skupinou programov, ktoré dokážu pracovať s BMP, sú univerzálne prehliadače, kam patrí aplikácia Universal Viewer.


Metóda 9: Maľovanie

Spôsoby otvárania BMP pomocou programov nainštalovaných od tretích strán boli uvedené vyššie, ale Windows má svoj vlastný grafický editor - Paint.


Metóda 10: Windows Photo Viewer

Windows má tiež vstavaný prehliadač iba obrázkov, ktorý možno použiť na spustenie BMP. Pozrime sa, ako to urobiť pomocou systému Windows 7 ako príklad.


Ako vidíte, existuje pomerne veľký zoznam programov, ktoré dokážu otvoriť obrázky BMP. A to nie sú všetky, ale len tie najobľúbenejšie. Výber konkrétnej aplikácie závisí od osobných preferencií používateľa, ako aj od stanovených cieľov. Ak sa potrebujete len pozrieť na kresbu alebo fotografiu, je lepšie použiť prehliadač obrázkov a na úpravu použiť editory obrázkov. Navyše, dokonca aj prehliadače môžu byť použité ako alternatíva na prezeranie. Ak používateľ nechce do počítača inštalovať ďalší softvér na prácu s BMP, môže na prezeranie a úpravu obrázkov použiť vstavaný softvér Windows.

Tento článok je o tom, ako vyzerá grafický formát bmp. Hoci ide o jeden z jednoduchších formátov, vzhľadom na to, že existuje veľa variácií tohto formátu, nie všetky body sú zrejmé. Takže prestaňte liať vodu, začnime.

Formátovať štruktúry

Formát bmp (zo slov BitMaP - bitová mapa alebo v ruštine bitové pole) je nekomprimovaný (väčšinou) obrázok, ktorý sa dá celkom ľahko prečítať a zobraziť v operačnom systéme Windows, ktorý má špeciálne funkcie API, ktoré pomáhajú.

Najprv si dajme grafické znázornenie údajov v bmp (obrázok prevzatý z MSDN).

Na začiatku je hlavička súboru (BITMAPFILEHEADER). Opisuje sa takto:

bfType určuje typ súboru. Tu by mal byť BM. Ak otvoríte akýkoľvek súbor BMP v textovom editore (alebo ešte lepšie v hexadecimálnom editore), uvidíte, že prvé dva znaky sú BM (zo slova BitMap, ako ste už pravdepodobne uhádli).
bfSize je veľkosť samotného súboru v bajtoch. Presne povedané, mali by ste to vypočítať (čo sa odporúča), ale nesprávne som nastavil veľkosť súboru (aj keď nie úmyselne :)) a nenastali žiadne problémy (ACDSee čítajte bez problémov, môj program fungoval), ale neodporúčam vám napíš to schválne nesprávne , zrazu sa objaví svedomitý program, ktorý túto veľkosť porovná s reálnou a rozhodne, že to nie je bmp, ale niečo iné. V ideálnom prípade by všetky programy, aby sa zabezpečilo, že ide o skutočný bmp a nie falošný, mali po prvé skontrolovať, či bfType obsahuje „BM“ (bez úvodzoviek), a po druhé, či veľkosť bfsize sa rovná veľkosti súboru .
bfReserved1 a bfReserved2 sú rezervované a musia byť nulové.
bfOffBits. Toto je jedna z najdôležitejších oblastí v tejto štruktúre. Ukazuje, kde začína samotná bitmapa vzhľadom na začiatok súboru (alebo, ako hovorí MSDN, "od začiatku štruktúry BITMAPFILEHEADER"), ktorý popisuje obrázok. To znamená, že ak chcete zaručiť, že sa dostanete na začiatok poľa, musíte napísať:

typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
DLHÉ biWidth;
DLHÉ biVýška;
dvojplošníky WORD;
SLOVO biBitCount;
DWORD biCompression;
DWORD biSizeImage;
DLHÉ biXPelsPerMeter;
DLHÝ biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrDôležité;
) BITMAPINFOHEADER, * PBITMAPINFOHEADER;

biSize je veľkosť samotnej konštrukcie. Je potrebné ho inicializovať takto: bih.biSize = sizeof(BITMAPINFOHEADER);
Aj tu budeme predpokladať, že bih je deklarované takto: BITMAPINFOHEADER bih;
biWidth a biHeight nastavte šírku a výšku obrázka v pixeloch, resp.
dvojplošníky určuje počet lietadiel. Zatiaľ je vždy nastavená na 1.
biBitCount- Počet bitov na pixel. Viac si o tom povieme nižšie.
biCompression označuje typ kompresie. Nebuďte prekvapení ani vystrašení, že bmp náhle zažije kompresiu. Ja osobne som žiadne skomprimované bmp nevidel (netvrdím však, že neexistujú). Ak nedochádza k žiadnej kompresii, tento príznak musí byť nastavený na BI_RGB. V tomto článku hovoríme o nekomprimovanom formáte, takže ani nebudem uvádzať ďalšie príznaky. Zdá sa, že rovnaká štruktúra je použitá v súboroch JPEG a PNG, pretože od Windows 98 sa objavili možnosti BI_JPEG, čo ukazuje, že tento obrázok je JPEG a BI_PNG, že je to PNG (o formáte Jpeg neviem nič, Práve som urobil tieto závery na základe toho, čo je napísané v MSDN).
biSizeImage označuje veľkosť obrázka v bajtoch. Ak je obrázok nekomprimovaný (to znamená, že predchádzajúce pole je nastavené na BI_RGB), mala by sa sem zapísať nula. biXPelsPerMeter A biYPelsPerMeter označujú horizontálne a vertikálne rozlíšenie (v pixeloch na meter) konečného zariadenia, na ktoré bude bitmapa (raster) vyvedená. Aplikácia môže použiť túto hodnotu na výber zo skupiny zdrojov najvhodnejšej bitovej mapy pre požadované zariadenie. Faktom je, že formát bmp je v podstate hardvérovo nezávislý raster, teda keď vzhľad toho, čo sa získa, nezávisí od toho, na čo sa tento raster (takpovediac) premieta. Napríklad obrázok bude vyzerať rovnako bez ohľadu na to, či je nakreslený na obrazovke monitora alebo vytlačený na tlačiarni. Rozlíšenie zariadení je však iné a práve na výber najvhodnejšieho obrazu z dostupných sa tieto parametre používajú.
biClrUsed určuje počet použitých farieb z tabuľky. Ak je táto hodnota nula, potom raster používa maximálny počet farieb povolený hodnotou biBitCount. Toto je relevantné len pre komprimované obrázky. Ak je hodnota biClrUsed nenulová a hodnota biBitCount je menšia ako 16, potom hodnota biClrUsed určuje aktuálny počet dostupných farieb grafického jadra alebo ovládača zariadenia. Ak je hodnota biBitCount väčšia alebo rovná 16, potom biClrUsed určuje veľkosť tabuľky farieb použitej na optimalizáciu aktuálnej systémovej palety.
biClrDôležité- toto je počet dôležitých farieb. Určuje počet farieb, ktoré sú potrebné na zobrazenie kresby. Ak je táto hodnota 0 (ako zvyčajne), potom sa všetky farby považujú za dôležité.

Typy formátu BMP

Všetky typy formátu bmp podmienečne možno rozdeliť na dva typy: paletové a nepaletové. Teda či je paleta v danom formáte použitá alebo nie. Upozorňujeme, že paleta môže byť aj v bezpaletových formátoch, ale tam sa nepoužíva. V bmps bez palety sa farba vypočíta priamo z bitov, ktoré sú v súbore, počnúc od určitého miesta. A v paletách každý bajt opisuje jeden alebo viac pixelov a hodnoty bajtov (alebo bitov) sú index farieb v palete. Na začiatok uvediem tabuľku, ktorá porovnáva možné možnosti. Typ obrázka (paleta alebo bez palety) závisí od počtu bitov na pixel, teda od hodnoty biBitCount štruktúry BITMAPINFOHEADER.

biBitCountPaletový alebo nepaletový formátMaximálny možný počet fariebPoznámky 1 Paleta2 Pozor, dvojfarebný, nie nevyhnutne čiernobiely, paletový obrázok. Ak je bit rastra (ktorý je tesne pod) resetovaný (rovná sa 0), znamená to, že prvá farba z palety by mala byť na tomto mieste a ak je nastavená (rovná sa 1), potom druhá. 4 Paleta16 Každý bajt popisuje 2 pixely. Tu je príklad z MSDN Ak je prvý bajt na obrázku 0x1F, potom zodpovedá dvom pixelom, farba prvého je druhá farba z palety (pretože odpočítavanie začína od nuly) a druhý pixel je. 16. farba palety. 8 Paleta256 Jedna z najbežnejších možností. Ale zároveň tie najjednoduchšie. Paleta zaberá jeden kilobajt (ale je lepšie s tým nepočítať). Jeden bajt je jedna farba. Jeho hodnota je navyše číslo farby v palete. 16 Žiadna paleta2^16 alebo 2^15Toto je najviac mätúca možnosť. Začnime tým, že je bez palety, teda každé dva bajty (jedno slovo WORD) v rastri jednoznačne definujú jeden pixel. Ale stane sa toto: existuje 16 bitov a sú tu 3 farebné zložky (červená, zelená, modrá). Ale 16 sa nechce deliť 3. Preto sú tu dve možnosti. Prvým je použiť 15 bitov namiesto 16, potom je 5 bitov pre každú farebnú zložku. Takto môžeme použiť maximálne 2^15 = 32768 farieb a dostaneme trojitý R-G-B = 5-5-5. Ale potom je celý kúsok zo 16 premrhaný nadarmo, ale náhodou naše oči, spomedzi všetkých farieb, lepšie vnímajú zelenú, a tak sme sa rozhodli dať tento kúsok zelenej zložke, čiže potom dostaneme tú. trojitý R-G-B = 5-6-5 a teraz môžeme použiť 2^16 = 65536 farieb. Najnepríjemnejšie však je, že sa využívajú obe možnosti. MSDN navrhuje, aby ste rozlíšili, koľko farieb sa používa, vyplňte pole biClrUsed zo štruktúry BITMAPINFOHEADER touto hodnotou. Na výber každej zložky musíte použiť nasledujúce masky. Pre formát 5-5-5: 0x001F pre modrý komponent, 0x03E0 pre zelený a 0x7C00 pre červený. Pre formát 5-6-5: 0x001F - modrá, 0x07E0 - zelená a 0xF800 červená. 24 Žiadna paleta2^24 A toto je najjednoduchší formát. Tu 3 bajty definujú 3 farebné zložky. To znamená jeden komponent na bajt. Jednoducho si prečítame štruktúru RGBTRIPLE a použijeme jej polia rgbtBlue, rgbtGreen, rgbtRed. Idú v tomto poradí. 32 Žiadna paleta2^32 Tu 4 bajty definujú 3 komponenty. Jeden bajt sa však nepoužíva. Dá sa použiť napríklad pre alfa kanál (transparentnosť). V tomto prípade je vhodné čítať raster pomocou štruktúr RGBQUAD, ktoré sú popísané nasledovne:

Ukladanie dát vo formáte bmp

No a teraz sa dostávame k najzaujímavejšej časti. Po štruktúrach BITMAPFILEHEADER a BITMAPINFOHEADER prichádza paleta. Navyše, ak je formát bez palety, nemusí tam byť, ale nemali by ste s tým počítať. Faktom je, že keď som ešte len začínal rozumieť formátu bmp, v jednej knihe som čítal, že vraj ak je formát bez palety, tak nemá žiadnu paletu. Boli tam dokonca dva obrázky – formátové diagramy: jeden s paletou, druhý bez. A v tom čase som písal program, ktorý usilovne pracuje so súbormi bmp. A musel som konvertovať prichádzajúce obrázky z 256 farieb na 24-bit (ak nejaké existujú) na dočasné súbory. A jednoducho som nevytvoril paletu v 24-bit (bfOffBits zo štruktúry BITMAPFILEHEADER sa rovnal súčtu sizeof(BITMAPFILEHEADER) + sizeof (BITMAPINFOHEADER), a nechal som prichádzajúce 24-bitové nezmenené. S 256-farebnými rastrami všetko fungoval ako má, kým som nenarazil na 24-bitový obrázok, ktorý mal v spodnej časti namiesto požadovanej časti zobrazený odpad, hneď som nerozumel, čo je zle, kým som neporovnal veľkosť pôvodného súboru s teoretická, ktorá tam mala byť, ak by tam nebola paleta. Rozdiel bol presne 1 KB (hoci všetky obrázky, na ktoré som narazil, mali veľkosť palety 256 farieb, čiže 1Kb), vždy prejdite cez súbor na začiatok rastra pomocou bfOffBits Paleta je pole štruktúr RGBQUAD, aj keď v palete nie sú použité všetky farby (ale napríklad iba 16), potom je pre paletu často alokovaných 256 polí A 256 * 4 = 1024, kde 4 je veľkosť štruktúry RGBQUAD, teda tá istá získa sa jeden kilobajt.

Hneď po palete prichádza na rad samotný raster. Tu sa veci stávajú ešte mätúce. Po prvé, pixely sú tu opísané tak, ako je napísané v tabuľke vyššie, v závislosti od formátu. A môžu samy obsahovať hodnotu farebných komponentov (pre tie bez palety), alebo to môžu byť indexy paletového poľa. Samotný obrázok sa zaznamenáva riadok po riadku. Po druhé, obraz sa zdá byť hore nohami. To znamená, že najskôr sa napíše spodný riadok, potom predposledný riadok a tak ďalej až úplne hore. A po tretie, ako je napísané, ak veľkosť rastrového riadku nie je násobkom 4, potom sa doplní 1 až 3 prázdnymi (nulovými) bajtmi, takže dĺžka riadku je násobkom odseku. Toto je najnepríjemnejšia vec. Faktom je, že pre každý formát musíte upraviť tento počet prázdnych bajtov (hoci rád tam píšem časť palety, len sa mi nechce vytvárať extra „nulové“ premenné, ak sa tieto bajty aj tak preskočia a nikto ich potrebuje). Poskytujem tabuľku so vzorcami, ktoré ukazujú, pre ktorý formát, koľko bajtov by sa malo pridať na koniec riadku. Tam premenná Width, ako asi tušíte, znamená šírku obrázka. Všetky tieto vzorce boli stanovené experimentálne. Príklad uvediem len pre najpoužívanejšie formáty. Zvyšok si môžete napísať sami.

Príklady programov

Môžete si stiahnuť všetky zdroje, nebudem tu veľa písať. Funkcie uvediem len s komentármi.

Dobrý deň 1. Vytvorenie obrázka vo formáte bmp.
Tu sa vytvorí monochromatický obraz. Existujú tri príklady takýchto funkcií: vytváranie bmp 8, 16 a 24 bitov. Dám len za 16-bit.

// Vytvorme obrázok vo formáte bmp 16 bitov ako 5-5-5, ktorý bude jednoducho monochromatický
void CreateBmp555(char * fname, farba SLOVA)
{
HANDLE hFile;
DWORD RW;
int i, j;

// Deklarujte potrebné štruktúry
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
Paleta BYTE[1024]; // Paleta

// Majme obrázok 35 x 50 pixelov
int šírka = 35 ;
int Vyska = 50 ;

memset(Paleta, 0, 1024); // V palete máme nuly, vyplňte ich
memset (&bfh, 0 , sizeof (bfh) );

Bfh.bfType = 0x4D42 ; // Označme, že toto je bmp "BM"
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) + 1024 ; // Paleta zaberá 1Kb, ale nevyužijeme ju
bfh.bfSize = bfh.bfOffBits +
veľkosť (farba) * Šírka * Výška +
Výška * ((veľkosť (farba) * Šírka) % 4 ) ; // Vypočítajte veľkosť konečného súboru
memset (&bih, 0 , sizeof (bih) );
bih.biSize = sizeof(bih); // Tak to má byť
bih.biBitCount = 16 ; // 16 bitov na pixel
bih.biClrUsed = 32768; // Používame 5-5-5
bih.biCompression = BI_RGB; // Bez kompresie
bih.biHeight = Výška;
bih.biWidth = šírka;
bih.biPlanes = 1 ; // Malo by byť 1
// A zostávajúce polia zostávajú 0

HFfile = CreateFile(fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
if (hFile == INVALID_HANDLE_VALUE)
vrátiť ;

// Napíšte hlavičky
WriteFile (hFile, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hFile, & bih, sizeof (bih) , & RW, NULL );

// Napíšte paletu
WriteFile(hFile, Palette, 1024, &RW, NULL);
pre (i = 0; i< Height; i++ )
{
pre (j = 0; j< Width; j++ )
{
WriteFile (hFile, & color, sizeof (color) , & RW, NULL ) ;
}

// Zarovnajte s okrajom
WriteFile (hFile, Palette, (sizeof (color) * Width) % 4 , & RW, NULL );
}
CloseHandle(hFile) ;
}

farba - farba obrázku. Hodnotu tejto premennej je potrebné vyplniť podľa prvej tabuľky. Výsledný obrázok si môžete pozrieť napríklad v ACDSee. Skúsil som to otvoriť vo Photoshope, ale ukázalo sa, že ich nedokáže prečítať v tomto formáte, ale môžete :).

Príklad 2. Prevod obrázka z 8-bitového (256 farieb) na 24-bitový.

BOOL Convert256To24 (char * fin, char * fout)
{
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
int Šírka, Výška;
Paleta RGBQUAD[ 256] ;
BYTE * inBuf;
RGBTRIPLE * outBuf;
RUKOJEŤ hIn, hOut;
DWORD RW;
DWORD OffBits;
int i, j;

HIn = CreateFile (fin, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
if (hIn == INVALID_HANDLE_VALUE)
návrat FALSE;

Hout = CreateFile(fout, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
if (hOut == INVALID_HANDLE_VALUE)
{
CloseHandle(hIn);
návrat FALSE;
}

// Prečítajte si údaje
ReadFile (hIn, & bfh, sizeof (bfh) , & RW, NULL );
ReadFile (hIn, & bih, sizeof (bih) , & RW, NULL );
ReadFile (hIn, Palette, 256 * sizeof (RGBQUAD) , & RW, NULL );

// Nastavíme ukazovateľ na začiatok rastra
SetFilePointer (hIn, bfh.bfOffBits, NULL, FILE_BEGIN) ;
Width = bih.biWidth ;
Výška = bih.biVýška ;
OffBits = bfh.bfOffBits ;

// Pridelenie pamäte
inBuf = new BYTE [ Width ] ;
outBuf = new RGBTRIPLE [Šírka];

// Vyplňte hlavičky
bfh.bfOffBits = sizeof (bfh) + sizeof (bih) ; // Nepíšme paletu
bih.biBitCount = 24 ;
bfh.bfSize = bfh.bfOffBits + 4 * Šírka * Výška + Výška * (Šírka % 4 ) ; // Veľkosť súboru

// A zvyšok zostáva nezmenený
// Napíšte hlavičky
WriteFile (hOut, & bfh, sizeof (bfh) , & RW, NULL );
WriteFile (hOut, & bih, sizeof (bih) , & RW, NULL );

// Začnime konvertovať
pre (i = 0; i< Height; i++ )
{
ReadFile(hIn, inBuf, Width, & RW, NULL);
pre (j = 0; j< Width; j++ )
{
outBuf[ j].rgbtRed = Paleta[ inBuf[ j] ] .rgbRed ;
outBuf[ j].rgbtGreen = Palette[ inBuf[ j] ] .rgbGreen ;
outBuf[ j].rgbtBlue = Palette[ inBuf[ j] ] .rgbBlue ;
}
WriteFile (hOut, outBuf, sizeof (RGBTRIPLE) * Width, & RW, NULL ) ;

// Napíšte odpad na zarovnanie
WriteFile (hOut, Palette, Width % 4 , & RW, NULL );
SetFilePointer(hIn, (3 * šírka) % 4, NULL, FILE_CURRENT) ;
}

vymazať inBuf;
vymazať outBuf;
CloseHandle(hIn);
CloseHandle(hOut);
vrátiť TRUE;
}

Názvy zdrojových a cieľových súborov musia byť odovzdané funkcii, resp.

Ste tu, pretože máte súbor, ktorý má príponu súboru končiacu na .bmp. Súbory s príponou .bmp môžu spúšťať iba určité aplikácie. Je možné, že súbory .bmp sú skôr dátové súbory ako dokumenty alebo médiá , čo znamená, že ich nemožno vôbec prezerať.

čo je súbor .bmp file?

Formát súboru BMP sa skladá zo súboru špecifikácií kódovania obrázkov implementovaných na výrobu nekomprimovaných súborov rastrových obrázkov. Tieto súbory bitmapových obrázkov sú pripojené s hlavičkami súborov, ktoré okrem iných podrobností špecifických pre obsah obrázkov zodpovedajúcich súborov BMP obsahujú aj identifikátory bitovej mapy. Obsah digitálneho obrázka uložený v súbore BMP pozostáva z pixelov v obdĺžnikovej mriežke. Pixely obsiahnuté v týchto súboroch BMP môžu byť integrované s rôznymi hĺbkami farieb v závislosti od hlavičiek súborov BMP. Prechody v odtieňoch sivej možno použiť aj na pixely súboru .bmp a tieto súbory .bmp možno exportovať do rozšírenejších formátov digitálnych obrázkov s menšou veľkosťou pre optimálnu prenosnosť.

ako otvoriť súbor .bmp?

Spustite súbor .bmp, alebo akýkoľvek iný súbor na vašom PC, dvojitým kliknutím naň. Ak sú vaše asociácie súborov nastavené správne, otvorí ho aplikácia, ktorá má otvoriť váš súbor .bmp. Je možné, že si budete musieť stiahnuť alebo zakúpiť správnu aplikáciu. Je tiež možné, že máte na počítači správnu aplikáciu, ale súbory .bmp ešte nie sú s ňou spojené. V tomto prípade, keď sa pokúsite otvoriť súbor .bmp, môžete systému Windows povedať, ktorá aplikácia je pre daný súbor tá správna. Od tej doby otvorenie súboru .bmp otvorí správnu aplikáciu.

aplikácie, ktoré otvárajú súbor .bmp

Adobe Photoshop CS6 pre Microsoft Windows

Adobe Photoshop CS6 pre Microsoft Windows je softvér na úpravu a správu obrázkov, ktorý je možné stiahnuť do počítačov so systémom Windows, konkrétne Windows 7 (bez SP a SP1) a Windows XP s SP3. Tento softvér prichádza s novými funkciami a nástrojmi na jednoduché, rýchle, zábavné a pokročilé úpravy digitálnych obrázkov. Jednou z funkcií, vďaka ktorým je tento program spoľahlivý na úpravu obrázkov, je Adobe Mercury Graphics Engine, čo je technológia motora, ktorá poskytuje rýchlejší a vysoko kvalitný výkon. Nástroje Content-Aware sú nové navrhnuté funkcie na jednoduché retušovanie obrázkov, pretože môžete orezať obrázky bez akéhokoľvek efektu, automaticky opraviť rozmazanie alebo zakrivenie širokouhlého objektívu, odstrániť efekt červených očí a upraviť vyváženie farieb, ako je jas a kontrast. Tento editor obrázkov je tiež dodávaný s funkciou automatického obnovenia, ktorá dokáže zálohovať všetky neuložené obrázky, možnosť Uložiť na pozadí, galériu rozmazania, nástroj na orezanie, vytváranie videa a oveľa viac. So všetkými týmito novými vylepšenými funkciami a moderným užívateľsky prívetivým rozhraním nemôže byť úprava digitálnych fotografií nikdy taká zábavná a jednoduchá bez aplikácie Photoshop CS6.

Adobe Photoshop CS6 pre Mac

Adobe Photoshop CS6 pre Mac

Adobe Photoshop CS6 pre Mac je verzia softvéru na správu obrázkov „Creative Suite“ určená výhradne pre počítače Mac, najmä Mac OS X v10.6 až 10.7 v 64-bitovej verzii. Tento program na úpravu obrázkov je dodávaný s novou sadou funkcií a nástrojov, ako je Mercury Graphics Engine vyvinutý tou istou spoločnosťou pre rýchle a vysokokvalitné vylepšovanie obrazu, funkcie Content-Aware, intuitívne prepracované nástroje na navrhovanie filmov, pracovné postupy. , Galéria rozmazania, nástroj Orezať a mnoho ďalších. Adobe Mercury Graphics Engine funguje tak, že umožňuje jednoduché a rýchle dokončenie úloh úprav. To tiež umožňuje zdieľanie a migráciu obrázkov s možnosťou automatického obnovenia a uloženia na pozadí. Nové nástroje Content-Aware sú vytvorené pre jednoduchý a kontrolovateľný spôsob retušovania alebo vylepšenia obrázkov, ktorých výsledkom je spokojnejší výstup. V podstate umožňuje každému používateľovi automaticky upravovať obrázky, orezávať ich a upravovať zakrivenia širokouhlých objektívov.

ACD Systems Canvas 14

ACD Systems Canvas 14

Spoločnosť ACD Systems International Inc. je vývojárom ACD Systems Canvas 14, čo je softvér technického riešenia grafiky, ktorý umožňuje používateľom jednoducho a rýchlo analyzovať dáta, vylepšovať grafiku a zdieľať všetky informácie. Tento program je navrhnutý s plnohodnotnými nástrojmi, ktoré pomáhajú používateľom presne vytvárať technickú grafiku a ilustrácie. Pozostáva z nástrojov na úpravu, ktoré sa líšia od úprav obrázkov po nástroje na ilustráciu objektov. Všetky výsledky vytvorené týmto programom vytvárajú dobré prezentácie pre projekty, návrhy a iné účely pre akúkoľvek oblasť podnikania súvisiacu s grafikou a inžinierstvom. Viac o funkciách, používatelia môžu pracovať s rastrovými obrázkami a vektorovou grafikou pomocou rovnakého súboru s možnosťou úpravy zmenou veľkosti a mierky objektov, kreslením tvarov, ako aj vkladaním ťahov a výplní alebo šírok. K dispozícii je tiež nástroj na pridávanie textov alebo štítkov a rozmerov formátu plus vytváranie grafov. Pomocou tohto programu môžu používatelia zdieľať hotové projekty prostredníctvom prezentácií alebo publikácií.

Systémy ACD ACDSee 15

Systémy ACD ACDSee 15

ACD Systems ACDSee 15 je fotografický softvér, ktorý obsahuje organizátor obrázkov, prehliadač a program na úpravu obrázkov RAW/RAW pre Microsoft Windows a Mac OS X 10.6 (Windows XP s balíkom Service Pack 2, Vista, 7 a 8; Mac OS X 10.5, 10.6 , 10.7 a horský lev). Bol vyvinutý spoločnosťou ACD Systems International, Inc. a pôvodne distribuovaná ako 16-bitová aplikácia, ktorá bola neskôr inovovaná na 32-bitovú verziu. Táto minimálna hardvérová požiadavka pre túto aplikáciu je procesor Intel Pentium III/AMD Athlon alebo ekvivalentný s 512 MB RAM (s 310 MB voľného miesta na pevnom disku), adaptér s vysokým farebným displejom s rozlíšením 1024 x 768 a napaľovačka CD/DVD. ACDSee spravuje a podporuje video a audio súbory vo formátoch, ktoré zahŕňajú GIF, BMP, JPG, PNG, MP3, PSD, WAV, MPEG a TIFF. Používatelia môžu prezerať, upravovať, pridávať efekty a organizovať zbierky fotografií a videí, ktoré možno zdieľať online. Fotografie je možné usporiadať, pretože sú importované z fotoaparátu alebo iného úložného zariadenia. Obsahuje tiež zobrazenie mapy a podporu geografického označovania, ktoré používateľom umožňujú zobraziť polohu obrázkov z kamier s podporou GPS. Funkcie ako rýchle prehliadanie, skenovanie, úpravy a možnosti zálohovania uľahčujú triedenie fotografií podľa dátumu a udalosti a ukladanie záložných kópií na disky CD, DVD a Blu-Ray.

Uvažovalo sa o malom programe, ktorý pohyboval spritom po obrazovke, ale, žiaľ, nevyzeral tak, ako by sme chceli. V tomto článku sa pokúsime „upratať“ sprite.

Získali sme obrázok sprite zo súboru Bmp z tých istých súborov, z ktorých môžeme získať obrázok pozadia, kurzora myši a prvkov rozhrania. To, čo vidíme na obrazovke, však nie je presne to, čo sme očakávali: obraz sa ukázal byť hore nohami a navyše s inými farbami, ako sa požadovalo. Poďme sa teda naučiť, ako správne čítať súbory Bmp a otočiť obrázok „od hlavy po päty“.

Podľa rozhodnutia vývojárov nie je formát súboru Bmp viazaný na konkrétnu hardvérovú platformu. Tento súbor pozostáva zo štyroch častí: hlavičky, informačnej hlavičky, tabuľky farieb (palety) a obrazových údajov. Ak súbor obsahuje obrázok s farebnou hĺbkou 24 bitov (16 miliónov farieb), potom tabuľka farieb môže chýbať, ale v našom prípade s 256 farbami tam je. Štruktúra každej časti súboru s 256-farebným obrázkom je uvedená v a príslušné typy záznamov sú uvedené v .

Hlavička súboru začína na podpisov„BM“, za ktorým nasleduje dĺžka súboru vyjadrená v bajtoch. Ďalšie 4 bajty sú vyhradené pre ďalšie rozšírenia formátu a táto hlavička končí posunutie od začiatku súboru až po obrazové údaje v ňom zaznamenané. Pri 256 farbách je tento posun 1078 – presne toľko sme museli v našom predchádzajúcom programe preskočiť, aby sme sa dostali k údajom.

Informačná hlavička začína vlastnou dĺžkou (tá sa môže líšiť, ale pre 256-farebný súbor je to 40 bajtov) a obsahuje rozmery obrázka, rozlíšenie, charakteristiku zobrazenia farieb a ďalšie parametre.

Šírka a výška obrázka sú špecifikované v rastrových bodoch a pravdepodobne nevyžadujú vysvetlenie.

Počet lietadiel možno použiť v súboroch s nízkou farebnou hĺbkou. Keď je počet farieb 256 alebo viac, vždy sa rovná 1, takže toto pole možno teraz považovať za zastarané, ale kvôli kompatibilite je zachované.

Farebná hĺbka sa považuje za najdôležitejšiu charakteristiku spôsobu znázornenia farby v súbore a meria sa v bitoch na bod. V tomto prípade sa rovná 8.

Kompresia. Zvyčajne sa nepoužíva v súboroch Bmp, ale je preň poskytnuté pole v hlavičke. Zvyčajne je to 0, čo znamená, že obrázok nie je komprimovaný. V budúcnosti budeme používať iba takéto súbory.

Veľkosť obrazu- počet bajtov pamäte potrebnej na uloženie tohto obrázku, nepočítajúc dáta palety.

Horizontálne a vertikálne rozlíšenie merané v rastrových bodoch na meter. Sú dôležité najmä pre zachovanie mierky skenovaných obrázkov. Obrázky vytvorené pomocou grafických editorov majú v týchto poliach zvyčajne nuly.

Počet farieb umožňuje zmenšiť veľkosť tabuľky palety, ak obrázok v skutočnosti obsahuje menej farieb, ako umožňuje zvolená farebná hĺbka. V praxi sa však takéto súbory takmer nikdy nenachádzajú. Ak je počet farieb maximálny povolený farebnou hĺbkou, napríklad 256 farieb pri 8 bitoch, pole sa nastaví na nulu.

Počet základných farieb- pochádza zo začiatku palety a je vhodné ju zobraziť bez skreslenia. Toto pole je dôležité, keď bol maximálny počet farieb zobrazenia menší ako v palete súborov Bmp. Pri vývoji formátu sa samozrejme predpokladalo, že najčastejšie sa vyskytujúce farby budú umiestnené na začiatku tabuľky. Teraz sa táto požiadavka prakticky nedodržiava, t.j. farby nie sú zoradené podľa frekvencie, s akou sa vyskytujú v súbore. Je to veľmi dôležité, keďže palety dvoch rôznych súborov, dokonca zložených z rovnakých farieb, by ich (farby) obsahovali v inom poradí, čo by mohlo výrazne skomplikovať súčasné zobrazovanie takýchto obrázkov na obrazovke.

Za informačnou hlavičkou nasleduje tabuľka farieb, čo je pole 256 (v počte farieb) 4-bajtových polí. Každé pole zodpovedá farbe v palete a tri zo štyroch bajtov zodpovedajú modrej, zelenej a červenej zložke tejto farby. Posledný najvýznamnejší bajt každého poľa je rezervovaný a rovná sa 0.

Po tabuľke farieb sú obrazové údaje, ktoré sú zapísané pozdĺž rastrových čiar zdola nahor a vo vnútri riadku zľava doprava. Keďže na niektorých platformách nie je možné prečítať dátovú jednotku, ktorá je menšia ako 4 bajty, dĺžka každého riadku je zarovnaná na hranicu 4 bajtov, t.j. ak dĺžka riadku nie je násobkom štyroch, je doplnená nuly. Túto okolnosť je potrebné vziať do úvahy pri čítaní súboru, aj keď môže byť lepšie vopred zabezpečiť, aby horizontálne rozmery všetkých obrázkov boli násobkom 4.

Ako sme už povedali, formát súboru bol navrhnutý tak, aby bol univerzálny pre rôzne platformy, a tak neprekvapí, že farby palety sú v ňom uložené inak, ako je zvykom pri VGA. Počas procesu čítania sa vykoná potrebné prekódovanie. (O tom, čo je paleta VGA a ako s ňou pracovať, si povieme v nasledujúcich článkoch.)

Modul na čítanie 256-farebných Bmp súborov má len dva postupy. Ako je zrejmé z výpisu, rozmery obrázka musia byť odovzdané procedúre čítania súboru ReadBMP. To je výhodné, ak obrázok nie je potrebné prečítať celý. Keď sú veľkosti vopred známe, nespôsobuje to problémy, ale bolo by dobré, keby pomocou nášho modulu bolo možné prečítať akékoľvek obrázky, vrátane tých, ktorých veľkosť je vopred neznáma. Na tento účel je poskytnutá procedúra ReadBMPheader, ktorá číta iba hlavičku súboru. Jeho volaním si môžete skontrolovať, či je obrázok zaznamenaný vo vybranom 256-farebnom formáte, zistiť jeho rozmery a až potom mu alokovať pamäť a umiestniť ho do pridelenej vyrovnávacej pamäte.

Teraz pripojíme nový modul k nášmu programu. Aby sme to dosiahli, napíšeme jej názov do smernice o použití a tiež poskytneme pole na ukladanie údajov o palete, ktoré možno opísať takto:

P: pole bajtov;

Procedúra CreateSprite, ktorá vyvoláva operáciu čítania súboru z nového modulu, bola zjednodušená (pozri).

Štruktúra súboru Bmp

názov Dĺžka Zaujatosť Popis
Hlavička súboru (BitMapFileHeader)
Typ2 0 Podpis "BM"
Veľkosť4 2 veľkosť súboru
Rezervované 12 6 Rezervované
Rezervované 22 8 Rezervované
OffsetBits4 10 Odsadenie obrazu od začiatku súboru
Informačná hlavička (BitMapInfoHeader)
Veľkosť4 14 Dĺžka hlavičky
šírka4 18 Šírka obrázka, body
Výška4 22 Výška obrázka, body
Lietadlá2 26 Počet lietadiel
BitCount2 28 Farebná hĺbka, počet bitov na bod
Kompresia4 30 Typ kompresie (0 – nekomprimovaný obrázok)
Veľkosť obrázka4 34 Veľkosť obrázka, bajty
XpelsPerMeter4 38 Horizontálne rozlíšenie, počet bodov na meter
YpelsPerMeter4 42 Vertikálne rozlíšenie, počet bodov na meter
Použité farby4 46 Počet použitých farieb (0 je maximum možné pre danú farebnú hĺbku)
Farby Dôležité4 50 Počet základných farieb
Tabuľka farieb (paleta)
ColorTable1024 54 256 prvkov po 4 bajty
Údaje obrázka (bitové pole)
ObrázokVeľkosť1078 Obrázok zaznamenaný v radoch zľava doprava a zdola nahor

Výpis 1

jednotka bmpread; (postupy pre prácu s Bmp) typ rozhrania arttype = arrayof byte; arptr = ^artype; bmFileHeader = záznam (hlavička súboru) Typf: word; (podpis ) Veľkosť: longint; (dĺžka súboru v bajtoch) Res1: slovo; (vyhradené) Res2: slovo; (vyhradené) OfBm: longint; (posun obrazu v bajtoch (1078)) end; bmInfoHeader = záznam (hlavička informácií) Veľkosť: longint; (dĺžka hlavičky v bajtoch (40)) Widt: longint; (šírka obrázka (v pixeloch)) Výška: longint; (výška obrázka (v pixeloch)) Plán: slovo; (počet rovín (1)) BitC: slovo; (farebná hĺbka (bity na bod) (8)) Comp: longint; (typ kompresie (0 - nie)) SizI: longint; (veľkosť obrázka v bajtoch) XppM: longint; (horizontálne rozlíšenie) ((body na meter – zvyčajne 0)) YppM: longint; (vertikálne rozlíšenie) ((bodov na meter – zvyčajne 0)) NCoL: longint; (počet farieb) ((ak je povolené maximum 0)) NCoI: longint; (počet základných farieb) koniec; bmHeader = záznam (úplná hlavička súboru) f: bmFileHeader; (hlavička súboru) i: bmInfoHeader; (informačná hlavička) p: arrayof byte; (tabuľka palety) koniec; bmhptr = ^bmHeader; (čítanie obrázka zo súboru Bmp) procedure ReadBMP(obrazok:arptr; (pole s obrázkom) xim,yim:word; (rozmery) pal:arptr; (paleta) názov_súboru:string); (názov súboru) (čítanie hlavičky Bmp súboru) procedure ReadBMPheader(header:bmhptr;filename:string); implementácia ($R-) (čítanie obrázku zo súboru Bmp) procedure ReadBMP(image:arptr; xim,yim:word; pal:arptr; filename:string); var h: bmHeader; i:integer; bmpfile: súbor; s: longint; begin assign(bmpfile,filename); reset(bmpfile,1); blockread(bmpfile,h,sizeof(h)); (čítanie hlavičky) for i:= 0 až yim-1 do begin (čítanie riadok po riadku) blockread(bmpfile,image^[(yim-i-1)*xim],xim); if (xim mod 4)<>0 potom blockread(bmpfile,s,4 - (xim mod 4)); koniec;

close(bmpfile); for i ^= 0 až 255 do begin (transformácia palety) pal^ := h.p shr 2; (modrý) pal^ := h.p shr 2; (zelená) pal^ := h.p shr 2; (červený) koniec; koniec; (čítanie hlavičky Bmp súboru) procedure ReadBMPheader(header:bmhptr;filename:string); var bmpfile:súbor; begin assign(bmpfile,filename); reset(bmpfile,1); blockread(bmpfile,header^,sizeof(header^)); close(bmpfile); koniec; koniec.

( sprite) procedure CreateSprite(s:string; x,y,dx,dy:integer); var f: súbor; (súbor s obrázkom sprite) begin getmem(Sprt.Img,sizeof(SpriteArrayType)); (pridelenie pamäte pre sprite) getmem(Sprt.Back,sizeof(SpriteArrayType)); (pridelenie pamäte pre vyrovnávaciu pamäť) Readbmp(@(Sprt.Img^),Xsize,Ysize,@p,s); Sprt.x:= x; Sprt.y:=y; (nastavte počiatočné hodnoty) Sprt.dx:= dx; (súradnice a prírastky) Sprt.dy:= dy; koniec;

Oznámenie

Formát rastrového obrázka BMP

BMP (bitmapový súbor, na zariadení nezávislý formát bitmapového súboru) sú bitmapové súbory používané na ukladanie digitálnych bitmapových obrázkov oddelene od zobrazovacieho zariadenia. Tento typ súboru sa predtým používal v Microsoft Windows a OS/2. Termín "raster" pochádza z programátorskej predstavy o bitmape. Obrázky BMP sú zvyčajne nekomprimované alebo bezstratovo komprimované (napríklad pomocou ZIP alebo RAR - kvôli prítomnosti nadbytočných údajov v súbore). Dnes je preferovaným formátom obrázkov JPG – hlavne kvôli veľkej veľkosti súborov BMP, ktorá môže spôsobiť problémy alebo oneskorenia pri sťahovaní, odosielaní alebo nahrávaní súborov.

Technické informácie o súboroch BMP

Súbory BMP sa ukladajú ako 2D obrázky rôznych veľkostí, farieb a farebných hĺbok bez kompresie údajov, farebných profilov alebo alfa kanálov. Obrázky BMP sa ukladajú vo formátoch bitmapy nezávislých na zariadení (DIB), čo znamená, že obrázok má skôr farby ako systémové špecifikácie. To vysvetľuje, prečo niektoré obrázky BMP vyzerajú na rôznych počítačoch odlišne. Obrázky BMP je možné prezerať na akomkoľvek zariadení vrátane obrazoviek počítača a televízie. Nedostatok patentov spôsobil, že tento typ obrázkov je obľúbeným formátom pre širokú škálu zariadení.

Ďalšie informácie o formáte BMP



 

Môže byť užitočné prečítať si:

 



Rozšírenie súboru .bmp
Kategória súboru
Príklad súboru (2,7 MiB)
(487,85 kB)
Súvisiace programy Adobe Photoshop
MS Paint
Microsoft Photo Editor
Štetec