Anunţ

Format de fișier imagine BMP Raster

BMP (fișier bitmap, format de fișier bitmap independent de dispozitiv) sunt fișiere bitmap utilizate pentru a stoca imagini digitale bitmap separat de dispozitivul de afișare. Acest tip de fișier a fost folosit anterior în Microsoft Windows și OS/2. Termenul „raster” provine din ideea programatorilor de bitmap. Imaginile BMP sunt de obicei necomprimate sau comprimate fără pierderi (de exemplu, folosind ZIP sau RAR - datorită prezenței datelor redundante în fișier). Astăzi, JPG este formatul de imagine preferat - în principal datorită dimensiunii mari a fișierului BMP, care poate cauza probleme sau întârzieri la descărcarea, trimiterea sau încărcarea fișierelor.

Informații tehnice despre fișierele BMP

Fișierele BMP sunt stocate ca imagini 2D de diferite dimensiuni, culori și adâncimi de culoare fără compresie de date, profiluri de culoare sau canale alfa. Imaginile BMP sunt salvate în formate de bitmap independent de dispozitiv (DIB), ceea ce înseamnă că imaginea are culori mai degrabă decât specificațiile sistemului. Aceasta explică de ce unele imagini BMP arată diferit pe computere diferite. Imaginile BMP pot fi vizualizate pe orice dispozitiv, inclusiv pe ecrane de computer și televizor. Lipsa brevetelor a făcut din acest tip de imagine un format popular pentru o gamă largă de dispozitive.

Informații suplimentare despre formatul BMP

BMP(din engleza Imagine bitmap) este un format de stocare a imaginilor raster dezvoltat de Microsoft.

Un număr mare de programe funcționează cu formatul BMP, deoarece suportul acestuia este integrat în sistemele de operare Windows și OS/2. Fișierele BMP pot avea extensii .bmp, .dib și .rle. În plus, datele în acest format sunt incluse în fișierele de resurse binare RES și fișierele PE.

Microsoft a dezvoltat, de asemenea, formatele ICO și CUR pentru nevoile sale, care au o structură similară cu BMP. În plus, structurile din acest format sunt folosite de unele funcții WinAPI ale subsistemului GDI.

Adâncimile de culoare în acest format pot fi 1, 2, 4, 8, 16, 24, 32, 48 biți pe pixel, dar 2 biți pe pixel nu sunt acceptați oficial. În acest caz, pentru adâncimi de culoare mai mici de 16 biți, se utilizează o paletă cu componente full-color cu o adâncime de 24 de biți.

În formatul BMP, imaginile pot fi stocate ca atare sau folosind niște algoritmi de compresie obișnuiți. În special, formatul BMP acceptă compresia RLE fără pierderi de calitate, iar sistemele de operare și software-ul modern permit utilizarea JPEG și PNG (aceste formate sunt încorporate în BMP ca container).

Extensie de fișier .bmp
Categoria de fișiere
Exemplu de fișier (2,7 MiB)
(487,85 KiB)
Programe înrudite Adobe Photoshop
MS Paint
Microsoft Photo Editor
Pensulă

DIB și DDB

Când utilizați formatul DIB Bitmap independent de dispozitiv, raster independent de dispozitiv), programatorul poate accesa toate elementele structurilor care descriu imaginea folosind un pointer obișnuit. Dar aceste date nu sunt folosite pentru a controla direct ecranul, deoarece sunt întotdeauna stocate în memoria sistemului și nu în memoria video dedicată. Formatul pixelilor din RAM poate diferi de formatul care trebuie stocat în memoria video pentru a afișa un punct de aceeași culoare. De exemplu, formatul DIB poate folosi 24 de biți pentru a specifica un pixel, iar în acest moment adaptorul grafic poate funcționa în modul HiColor cu o adâncime de culoare de 16 biți. În acest caz, punctul roșu strălucitor va fi specificat într-un format independent de hardware cu trei octeți 0x0000ff, iar în memoria video prin cuvântul 0xF800. Când copiați o imagine pe ecran, sistemul va petrece timp suplimentar transformând codurile de culoare din formatul de 24 de biți în formatul de tampon video.

Prezentare generală a structurii fișierelor

Fișierul BMP este format din patru părți:

  1. Antetul fișierului (BITMAPFILEHEADER)
  2. Denumirea imaginii (BITMAPINFOHEADER, poate lipsi). BITMAPV4HEADER (Win95, NT4.0) BITMAPV5HEADER (Win98/Me, 2000/XP)
  3. Paleta (poate lipsi)
  4. Imaginea în sine

BITMAFILEHEADER

Această structură conține informații despre tipul, dimensiunea și reprezentarea datelor din fișier. Dimensiune 14 octeți.

Typedef struct tagBITMAPFILEHEADER ( WORD bfType; // offset 0 octeți de la începutul fișierului DWORD bfSize; // offset 2 octeți de la începutul fișierului, lungime 4 octeți WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; // offset 10 octeți de la începutul fișierului, lungimea de 4 octeți) BITMAPFILEHEADER, * PBITMAPFILEHEADER;

Tipul WORD trebuie să fie de 16 biți, tipurile DWORD și LONG trebuie să fie de 32 de biți, tipul LONG trebuie să fie semnat și ordinea octeților se presupune a fi little endian.

  • bfType - tip de fișier, caractere „BM” (în HEX: 0x42 0x4d).
  • bfSize - dimensiunea întregului fișier în octeți.
  • bfReserved1 și bfReserved2 sunt rezervate și trebuie să conțină zerouri.
  • bfOffBits - conține offset-ul în octeți de la începutul structurii BITMAPFILEHEADER până la biții de imagine înșiși.

După antetul fișierului

BITMAPINFHEADDER

Cea mai simplă opțiune de antet. Aplicațiile pentru Windows NT3.51 și versiuni anterioare pot utiliza numai această structură. Dimensiune 40 octeți.

Typedef struct tagBITMAPINFOHEADER( DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrBiClrUsed; ITMDWAPINF; EADER;

BiSize Mărimea acestei structuri în octeți. Formatul BMP a fost extins de-a lungul timpului, iar valoarea acestui câmp determină versiunea formatului. biWidth Lățimea imaginii în pixeli. Pentru Win98/Me și Win2000/XP: Dacă câmpul biCompression conține BI_JPEG sau BI_PNG, aceasta este lățimea imaginii decomprimate. biHeight Înălțimea imaginii în pixeli. Dacă conține o valoare pozitivă, imaginea este scrisă în ordinea de jos în sus (zero pixel în colțul din stânga jos). Dacă valoarea este negativă, imaginea este scrisă de sus în jos (zero pixel în colțul din stânga sus al imaginii). Câmpul biCompression trebuie să conţină valoarea BI_RGB sau BI_BITFIELDS. O astfel de imagine nu poate fi comprimată. biPlanes Numărul de planuri de culoare și în format BMP conține unul. biBitCount Numărul de biți pe pixel. Poate lua următoarele valori:

  • 0 - are sens pentru Win98/Me/2000/XP. Numărul de biți pe pixel determină formatul JPEG sau PNG.
  • 1 - imagine monocromă. Membrul bmiColors al structurii BITMAPINFO conține două elemente. Fiecare bit al unei imagini reprezintă un pixel; dacă bitul este zero, pixelul are culoarea primului element din tabelul bmiColors, în caz contrar - culoarea celui de-al doilea.
  • 4 - imagine în șaisprezece culori. Pixelii sunt definiți de indici de 4 biți, fiecare octet al imaginii conține informații despre doi pixeli - cei mai semnificativi 4 biți pentru primul, cei rămași pentru al doilea.
  • 8 - paleta conține până la 256 de culori, fiecare octet al imaginii stochează un index în paletă pentru un pixel.
  • 16 - dacă câmpul biCompression conține valoarea BI_RGB, fișierul nu conține o paletă. La fiecare doi octeți ai imaginii se stochează intensitatea componentelor roșii, verzi și albastre ale unui pixel. În acest caz, bitul cel mai semnificativ nu este utilizat 5 biți sunt alocați pentru fiecare componentă: 0RRRRRGGGGGGBBBBB.
    Dacă câmpul biCompression conține valoarea BI_BITFIELDS, paleta stochează trei valori de patru octeți care definesc o mască pentru fiecare dintre cele trei componente de culoare. Fiecare pixel dintr-o imagine este reprezentat de o valoare de doi octeți din care componentele de culoare sunt extrase folosind măști. Pentru WinNT/2000/XP, secvențele de biți ale fiecărei componente trebuie să urmeze continuu, fără să se suprapună sau să se intersecteze cu secvențele altor componente. Pentru Win95/98/Me - sunt acceptate doar următoarele măști: 5-5-5, unde masca componentei albastre este 0x001F, verde 0x03E0, roșu 0x7C00; și 5-6-5, unde masca componentei albastre este 0x001F, verde 0x07E0, roșu 0xF800.
  • 24 - paleta nu este folosită, fiecare trei octeți ai imaginii reprezintă un pixel, un octet pentru intensitatea canalelor albastru, verde și respectiv roșu.
  • 32 - Dacă câmpul biCompression conține valoarea BI_RGB, imaginea nu conține o paletă. Fiecare patru octeți ai imaginii reprezintă un pixel, un octet pentru intensitatea canalelor albastru, verde și respectiv roșu. Cel mai semnificativ octet al fiecărui quad nu este de obicei utilizat, dar permite stocarea datelor de canal alfa.
    Dacă câmpul biCompression conține valoarea BI_BITFIELDS, trei măști de culoare de patru octeți sunt stocate în paletă - pentru componentele roșu, verde și albastru. Fiecare pixel dintr-o imagine este reprezentat de patru octeți. WinNT/2000: măștile componente nu trebuie să se suprapună sau să se intersecteze. Windows 95/98/Me: sistemul acceptă un singur mod de compresie, complet similar cu modul fără compresie BI_RGB - cel mai semnificativ octet din fiecare patru este folosit ca canal alfa, următorii trei sunt rezervați pentru albastru, verde și roșu canale, respectiv: 0xAARRGGBB.
biCompression Tip de compresie pentru imagini comprimate:
Sens Identificator Comprimare
0 BI_RGB imagine necomprimată
1 BI_RLE8 Compresie RLE pentru imagini pe 8 biți
2 BI_RLE4 Compresie RLE pentru imagini pe 4 biți
3 BI_BITFIELDS imaginea nu este comprimată, paleta conține trei măști de 4 octeți pentru componentele de culoare roșu, verde și albastru. Folosit pentru imagini pe 16 și 32 de biți
4 BI_JPEG Win98/Me/2000/XP: compresie JPEG
5 BI_PNG Win98/Me/2000/XP: compresie PNG
6 BI_ALPHABITFIELDS WinCE: imaginea nu este comprimată, paleta conține patru măști de 4 octeți pentru componentele de culoare roșu, verde, albastru și transparent (canal alfa). Folosit pentru imagini pe 16 și 32 de biți
biSizeImage Dimensiunea imaginii în octeți. Poate conține zero pentru imaginile BI_RGB. Win98/Me/2000/XP: Dacă biCompression conține BI_JPEG sau BI_PNG, biSizeImage specifică dimensiunea memoriei tampon de imagine BI_JPEG sau BI_PNG. biXPelsPerMeter Rezoluție orizontală în pixeli pe metru pentru dispozitivul țintă. O aplicație poate folosi această valoare pentru a selecta dintr-un grup de resurse de imagine cea mai potrivită imagine pentru dispozitivul curent. Pentru DPI 96, care este acceptat de Microsoft pentru monitoare, acesta va fi egal cu 3780 (dacă este calculat folosind formula (96 / 25,4) * 1000). biYPelsPerMeter Rezoluție verticală în pixeli pe metru pentru dispozitivul țintă. biClrUsed Numărul de indici de culoare utilizați în paletă. Dacă valoarea este zero, imaginea folosește numărul maxim de indici disponibili, în funcție de valoarea biBitCount și metoda de compresie specificată în biCompression.
Dacă conține o valoare diferită de zero și biBitCount este mai mic de 16, biClrUsed specifică numărul de culori pe care le va accesa driverul de dispozitiv sau aplicația. Dacă biBitCount este mai mare sau egal cu 16, biClrUsed este dimensiunea paletei utilizată pentru a optimiza performanța paletelor de sistem. Dacă biBitCount este 16 sau 32, paleta optimă urmează imediat după trei măști de patru octeți.
Într-o imagine împachetată, matricea de pixeli urmează imediat structura BITMAPINFO, biClrUsed trebuie să conțină zero sau dimensiunea reală a paletei. biClrImportant Numărul de elemente de paletă necesare pentru afișarea imaginii. Dacă conține zero, toți indicii sunt la fel de importanți.

Structura BITMAPINFO combină BITMAPINFOHEADER și paleta, oferind o descriere completă a dimensiunilor și culorilor unei imagini.

Pentru a găsi paleta în structura BITMAPINFO, aplicația trebuie să folosească informațiile stocate în biSize după cum urmează:

PColor = ((LPSTR) pBitmapInfo + (WORD) (pBitmapInfo-> bmiHeader.biSize ) ) ;

Rasterul este de obicei stocat într-o formă oglindă verticală. Dar este, de asemenea, posibil să stocați rasterul într-o formă ne-oglindă vertical. Un semn că rasterul din BMP nu este în formă de oglindă verticală este specificat de parametrul biHeight.

BITMAPV4HEADER

O versiune extinsă a structurii descrise mai sus. Win NT 3.51 și versiunile anterioare trebuie să utilizeze structura BITMAPINFOHEADER. Win98/Me/2000/XP poate folosi structura BITMAPV5HEADER în loc de structura BITMAPV4HEADER.

Typedef struct ( DWORD bV4Size; LONG bV4Width; LONG bV4Height; WORD bV4Planes; WORD bV4BitCount; DWORD bV4V4Compression; DWORD bV4SizeImage; LONG bV4XPelsPerMeter; LONG bV4YPelsPerMeter; LONG bV4YPelsPerMeter;DWORD bV4YPelsPerMeter; DWORD bV4GreenMask; CIEXYZTRIPLE bV4Green DWORD;

Câmpurile de la începutul structurii până la și inclusiv bV4ClrImportant au același scop ca și câmpurile corespunzătoare ale structurii BITMAPINFOHEADER.

  • bV4RedMask - masca de culoare a componentei roșii a fiecărui pixel, utilizată numai dacă bV4Compression conține valoarea BI_BITFIELDS.
  • bV4GreenMask - masca de culoare a componentei verde a fiecărui pixel, utilizată numai dacă bV4Compression conține valoarea BI_BITFIELDS.
  • bV4BlueMask - masca de culoare a componentei albastre a fiecărui pixel, utilizată numai dacă bV4Compression conține valoarea BI_BITFIELDS.
  • bV4AlphaMask - masca care definește componenta canalului alfa.
  • bV4CSType - definește spațiul de culoare al imaginii.
  • bV4Endpoints este o structură CIEXYZTRIPLE care specifică coordonatele x, y și z a trei culori care corespund punctelor finale ale spațiului de culoare definit pentru imagine. Acest câmp este ignorat dacă bV4CSType nu conține o valoare LCS_CALIBRATED_RGB.
  • bV4GammaRed - curba de ton a componentei roșii. Ignorat dacă bV4CSType nu conține o valoare LCS_CALIBRATED_RGB. Indicat în format 16×16.
  • bV4GammaGreen - curba de ton a componentei verzi. Ignorat dacă bV4CSType nu conține o valoare LCS_CALIBRATED_RGB.
  • bV4GammaBlue - curba de ton al componentei albastre. Ignorat dacă bV4CSType nu conține o valoare LCS_CALIBRATED_RGB.

BITMAPV5HEADER

Win95/NT 4.0: Aplicațiile pot folosi BITMAPV4HEADER. Win NT 3.51 și versiunile anterioare trebuie să utilizeze structura BITMAPINFOHEADER.

Typedef struct ( DWORD bV5Size; LONG bV5Width; LONG bV5Height; WORD bV5Planes; WORD bV5BitCount; DWORD bV5Compression; DWORD bV5SizeImage; LONG bV5XPelsPerMeter; LONG bV5YPelsPerMeter; bVORD5VlImport.bVORD5Vl; GreenMask; DWORD bV5AlphaMask; 5 HEADER;

Pentru câmpurile de la începutul structurii până la și inclusiv bV5GammaBlue, vor fi descrise numai diferențele față de versiunile anterioare - BITMAPINFOHEADER și BITMAPV4HEADER.

  • bV5CSType - definește spațiul de culoare al imaginii, poate lua următoarele valori:
LCS_CALIBRATED_RGB LCS_sRGB LCS_WINDOWS_COLOR_SPACE PROFILE_LINKED PROFILE_EMBEDDED
  • bV5Intent - poate lua următoarele valori:
LCS_GM_ABS_COLORIMETRIC LCS_GM_BUSINESS LCS_GM_GRAPHICS LCS_GM_IMAGES
  • bV5ProfileData - offset în octeți de la începutul structurii până la începutul datelor de profil (nume fișier de profil, un șir format exclusiv din tabelul de coduri 1252 caractere și care se termină cu un octet zero). Ignorat dacă bV5CSType conține o altă valoare decât PROFILE_LINKED și PROFILE_EMBEDDED.
  • bV5ProfileSize - dimensiunea datelor de profil în octeți.
  • bV5Rezervat - rezervat. Conține zero.

Paletă

Paleta poate conține o secvență de câmpuri de patru octeți în funcție de numărul de culori disponibile (256 pentru o imagine de 8 biți). Cei trei octeți inferiori ai fiecărui câmp determină intensitatea componentelor roșii, verzi și albastre ale culorii; Fiecare pixel al imaginii este descris în acest caz de un octet care conține numărul câmpului de paletă în care este stocată culoarea acestui pixel.

Dacă un pixel de imagine este descris printr-un număr de 16 biți, paleta poate stoca trei valori de doi octeți, fiecare dintre acestea definind o mască pentru a extrage componentele de culoare roșie, verde și albastră din pixelul de 16 biți.

Este posibil ca un fișier BMP să nu conțină o paletă dacă stochează o imagine color necomprimată.

Date de imagine

O secvență de pixeli înregistrate într-o formă sau alta. Pixelii sunt stocați rând cu rând, de jos în sus. Fiecare linie de imagine este umplută cu zerouri până la o lungime care este un multiplu de patru octeți.

În fișierele bmp cu o adâncime de culoare de 24 de biți, octeții de culoare ai fiecărui pixel sunt stocați în ordinea BGR (Albastru, Verde, Roșu).

În fișierele bmp cu o adâncime de culoare de 32 de biți, octeții de culoare ai fiecărui pixel sunt stocați în ordinea BGRA (albastru, verde, roșu, alfa)

Adâncimea de biți a imaginii

În funcție de numărul de culori reprezentate, fiecare punct este alocat de la 1 la 48 de biți:

  • 1 bit - imagine monocromă (două culori).
  • 2 biți - 4 culori posibile (moduri de operare CGA) (modul 2 biți nu este standardizat oficial, dar este utilizat).
  • 4 biți - imagine în 16 culori (moduri de operare EGA).
  • 8 biți (1 octet) - 256 de culori, ultimul dintre moduri care acceptă culori indexate (vezi mai jos).
  • 16 biți (2 octeți) - modul HiColor, Pentru 5-6-5 = 65536 nuanțe posibile, pentru 5-5-5 = 32768 nuanțe posibile.
  • 24 de biți (3 octeți) - TrueColor. Deoarece 3 octeți nu se mapează bine la puteri de doi (mai ales când se stochează date în memorie, unde contează alinierea datelor la granița unui cuvânt), este adesea folosită o imagine de 32 de biți. În modul TrueColor, fiecăruia dintre cele trei canale (în modul RGB) i se alocă 1 octet (256 de valori posibile), numărul total de culori este .
  • 32 de biți (4 octeți) - acest mod este aproape similar cu TrueColor, al patrulea octet nu este de obicei utilizat sau conține canalul alfa (transparență).
  • 48 de biți (6 octeți) - un format rar folosit, cu acuratețe sporită a culorii (16 biți pe canal), susținut de un număr relativ mic de programe și echipamente.

Culori indexate

Când numărul de biți este de 1 (2 culori), 2 (4 culori), 4 (16 culori) sau 8 (256 de culori) per pixel, poate fi utilizat un mod special de culoare indexat. În acest caz, numărul corespunzător fiecărui pixel nu indică culoarea, ci numărul culorii din paletă. Prin utilizarea unei palete, este posibilă adaptarea imaginii la culorile prezente în imagine. În acest caz, imaginea este limitată nu de culorile specificate, ci de numărul maxim de culori utilizate simultan.

Exemplu de program

Următorul program deschide un fișier BMP de 24 de biți într-un XWindow, adâncimea de culoare ar trebui să fie de 32 de biți, nu funcționează la redări mai mici de culoare, deoarece complică exemplul:

/* Compilat cu linia: cc -o xtest xtest.c -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -lm */#include #include #include #include #include #include #include #include #include #include #include #include "bitmap.h" /* Iată definițiile antetului BMP descrise mai sus în acest articol */ static XImage * CreateImageFromBuffer(Display*, unsigned char *, int, int) ; main(int argc, char * argv ) ( Display * dis; Window win; /* Fereastra noastră */ XEvent event; /* Evenimente */ GC gc; /* Context grafic */ XImage * imagine; int n, lățime, înălțime, fd, dimensiune; unsigned char * date; BITMAFILEHEADER bmp; BITMAPINFOHEADER inf; char * buf; dacă (argc< 2 ) { perror ("use: xtest file.bmp\n"); ieșire(1); ) if ((fd = open(argv[ 1 ] , O_RDONLY) ) == - 1 ) ( printf ("Eroare de deschidere bitmap) \n"); ieșire(1); ) read(fd, & bmp, sizeof (BITMAPFILEHEADER)); read(fd, & inf, sizeof (BITMAPINFOHEADER)); lățime = inf.biWidth ; inaltime = inf.biInaltime ; if ((dis = XOpenDisplay(getenv ("DISPLAY") ) ) == NULL) ( printf ( „Nu se poate conecta serverul X: %s\n”, strerror (errno) ); ieșire(1); ) win = XCreateSimpleWindow(dis, RootWindow(dis, DefaultScreen(dis) ) , 0 , 0 , lățime, înălțime, 5 , BlackPixel(dis, DefaultScreen(dis) ) , WhitePixel(dis, DefaultScreen(dis) ) ); XSetStandardProperties(dis, win, argv[ 1 ], argv[ 0 ], None, argv, argc, NULL); gc = DefaultGC(dis, DefaultScreen(dis) ) ; /* Uneori, acest spațiu din structură nu este umplut */ if (inf.biSizeImage == 0 ) ( /* Calculați dimensiunea */ dimensiune = latime * 3 + latime % 4 ; marime = marime * inaltime; ) else ( size = inf.biSizeImage ; ) buf = malloc (size) ; if (buf == NULL) ( perror ("malloc" ) ; ieșire (1 ) ; ) printf ( „dimensiune = %d octeți alocați\n”, mărimea) ; /* Să trecem la începutul imaginii în sine */ lseek(fd, bmp.bfOffBits , SEEK_SET) ; /* Citiți în buffer */ n = read(fd, buf, size) ; printf( „dimensiune = %d octeți citiți\n”, n) ; imagine = CreateImageFromBuffer(dis, buf, lățime, înălțime) ; /* Ștergeți tamponul - nu mai avem nevoie de el */ gratuit(buf); XMapWindow(dis, câștig); XSelectInput(dis, win, ExposureMask | KeyPressMask) ; while (1) ( XNextEvent(dis, & event) ; if (event.xany .window == win) ( switch (event.type ) (case Expose: XPutImage(dis, win, gc, image, 0 , 0 , 0) , 0 , imagine-> lățime, imagine-> înălțime) ; break ; case KeyPress: if (XLookupKeysym(& event.xkey , 0 ) == XK_q) ( XDestroyImage(image) ; XCloseDisplay(dis) ; close(fd) ; ieșire (EXIT_SUCCESS) ; /* Creează o imagine X dintr-un fișier BMP, deoarece imaginea BMP este stocată inversată * și în oglindă - aceasta este corectată în buclă */ XImage * CreateImageFromBuffer(Display * dis, unsigned char * buf, int width, int height) ( int adâncime, ecran; XImage * img = NULL; int i, j; int numBmpBytes; size_t numImgBytes; int32_t * imgBuf; int ind = 0 ; int linie; /* Numerele rândurilor și coloanelor pentru a reflecta */ int new_ind; /* Index nou */ ecran = DefaultScreen(dis) ; depth = DefaultDepth(dis, ecran) ; temp = latime * 3 ; linie = temp + lățime % 4 ; /* Lungimea șirului ținând cont de aliniere */ numImgBytes = (4 * (lățime * înălțime) ) ; imgBuf = malloc(numImgBytes); /* Dimensiunea alocată BMP în fișier, ținând cont de aliniere */ numBmpBytes = linie * înălțime; pentru (i = 0; i< numBmpBytes; i++ ) { unsigned int r, g, b; /* Omite umplutura */ if (i >= temp && (i % line) >= temp) continua ; b = buf[ i] ; i++; g = buf[ i] ; i++; r = buf[ i] ; /* Calculați un nou indice pentru reflexia verticală */ iw = ind % lățime; ih = ind / lățime; new_ind = iw + (înălțime - ih - 1 ) * lățime; imgBuf[ new_ind] = (r | g<< 8 | b << 16 ) << 8 ; ind++; } img = XCreateImage(dis, CopyFromParent, depth, ZPixmap, 0 , (char * ) imgBuf, width, height, 32 , 0 ) ; XInitImage(img) ; /* Ordinea biților și octeților pe computer ar trebui să fie așa */ img->byte_order = MSBFirst; img->bitmap_bit_order = MSBFirst; intoarce img; )

S-a considerat un mic program care a mutat sprite-ul în jurul ecranului, dar, din păcate, nu a arătat așa cum ne-am dori. În acest articol vom încerca să „îngrijim” sprite-ul.

Am obținut imaginea sprite dintr-un fișier Bmp din aceleași fișiere putem lua imaginea de fundal, cursorul mouse-ului și elementele de interfață. Totuși, ceea ce vedem pe ecran nu este tocmai ceea ce ne așteptam: imaginea s-a dovedit a fi cu susul în jos și, în plus, cu culori diferite decât cele cerute. Deci, să învățăm cum să citim corect fișierele Bmp și să întoarcem imaginea „din cap până în picioare”.

Prin decizia dezvoltatorilor, formatul de fișier Bmp nu este legat de o anumită platformă hardware. Acest fișier este format din patru părți: un antet, un antet de informații, un tabel de culori (paletă) și date de imagine. Dacă fișierul stochează o imagine cu o adâncime de culoare de 24 de biți (16 milioane de culori), atunci tabelul de culori poate lipsi, dar în cazul nostru de 256 de culori este acolo. Structura fiecărei părți a unui fișier care stochează o imagine de 256 de culori este dată în , iar tipurile de înregistrare corespunzătoare sunt date în .

Antetul fișierului începe cu semnături„BM” urmat de lungimea fișierului, exprimată în octeți. Următorii 4 octeți sunt rezervați pentru extensii de format ulterioare, iar acest antet se termină deplasare de la începutul fișierului până la datele de imagine înregistrate în acesta. Cu 256 de culori, acest offset este 1078 - exact asta a trebuit să sărim în programul nostru anterior pentru a ajunge la date.

Antetul de informații începe cu propria lungime (aceasta poate varia, dar pentru un fișier de 256 de culori este de 40 de octeți) și conține dimensiunile imaginii, rezoluția, caracteristicile de prezentare a culorilor și alți parametri.

Lățimea și înălțimea imaginii sunt specificate în puncte raster și probabil nu necesită explicații.

Numărul de avioane ar putea fi folosit în fișiere cu adâncime redusă de culoare. Când numărul de culori este de 256 sau mai mult, acesta este întotdeauna egal cu 1, astfel încât acest câmp poate fi considerat acum învechit, dar pentru compatibilitate este păstrat.

Adâncimea culorii este considerată cea mai importantă caracteristică a modului în care culoarea este reprezentată într-un fișier și este măsurată în biți pe punct. În acest caz, este egal cu 8.

Comprimare. Nu este folosit de obicei în fișierele Bmp, dar este prevăzut un câmp în antet. De obicei, este 0, ceea ce înseamnă că imaginea nu este comprimată. Pe viitor vom folosi doar astfel de fișiere.

Marimea imaginii- numărul de octeți de memorie necesar pentru stocarea acestei imagini, fără a număra datele paletei.

Rezoluții orizontale și verticale măsurată în puncte raster pe metru. Ele sunt deosebit de importante pentru menținerea dimensiunii imaginilor scanate. Imaginile create folosind editori grafici au de obicei zerouri în aceste câmpuri.

Numărul de culori vă permite să reduceți dimensiunea tabelului de palete dacă imaginea conține de fapt mai puține culori decât permite adâncimea de culoare selectată. Cu toate acestea, în practică, astfel de fișiere nu sunt aproape niciodată găsite. Dacă numărul de culori este maximul permis de adâncimea culorii, de exemplu 256 de culori la 8 biți, câmpul este setat la zero.

Numărul de culori primare- vine de la începutul paletei și este indicat să o afișați fără distorsiuni. Acest câmp este important atunci când numărul maxim de culori de afișare a fost mai mic decât în ​​paleta de fișiere Bmp. La dezvoltarea formatului, s-a presupus, în mod evident, că culorile cele mai frecvente vor fi situate la începutul tabelului. Acum această cerință practic nu este respectată, adică culorile nu sunt ordonate în funcție de frecvența cu care apar în fișier. Acest lucru este foarte important, deoarece paletele a două fișiere diferite, chiar compuse din aceleași culori, le-ar conține (culorile) într-o ordine diferită, ceea ce ar putea complica semnificativ afișarea simultană a unor astfel de imagini pe ecran.

Antetul de informații este urmat de un tabel de culori, care este o matrice de 256 (în număr de culori) câmpuri de 4 octeți. Fiecare câmp corespunde unei culori din paletă, iar trei din cei patru octeți corespund componentelor albastru, verde și roșu ale acelei culori. Ultimul, cel mai semnificativ octet al fiecărui câmp este rezervat și egal cu 0.

După tabelul de culori există date de imagine, care sunt scrise de-a lungul liniilor raster de jos în sus și în interiorul liniei - de la stânga la dreapta. Deoarece pe unele platforme este imposibil să citiți o unitate de date care este mai mică de 4 octeți, lungimea fiecărei linii este aliniată la o limită de 4 octeți, adică dacă lungimea liniei nu este multiplu de patru, este aliniată cu zerouri. Această circumstanță trebuie luată în considerare la citirea fișierului, deși poate fi mai bine să vă asigurați în prealabil că dimensiunile orizontale ale tuturor imaginilor sunt multiplu de 4.

După cum am spus deja, formatul de fișier a fost conceput pentru a fi universal pentru diverse platforme, așa că nu este surprinzător faptul că culorile paletei sunt stocate în el altfel decât este obișnuit pentru VGA. În timpul procedurii de citire se efectuează recodificarea necesară. (Vom vorbi despre ce este paleta VGA și cum să lucrați cu ea în articolele următoare.)

Modulul pentru citirea fișierelor Bmp de 256 de culori are doar două proceduri. După cum se poate vedea din listă, dimensiunile imaginii trebuie trecute la procedura de citire a fișierului ReadBMP. Acest lucru este convenabil dacă imaginea nu trebuie citită complet. Când dimensiunile sunt cunoscute dinainte, acest lucru nu pune probleme, dar ar fi bine dacă, folosind modulul nostru, s-ar putea citi orice imagini, inclusiv cele a căror dimensiune nu este cunoscută dinainte. În acest scop, este furnizată procedura ReadBMPheader, care citește doar antetul fișierului. Apelând-o, puteți verifica dacă imaginea este înregistrată în formatul selectat de 256 de culori, puteți afla dimensiunile acesteia și abia apoi alocați memorie pentru aceasta și plasați-o în bufferul alocat.

Acum să conectăm un nou modul la programul nostru. Pentru a face acest lucru, îi vom scrie numele în directiva uses și, de asemenea, vom oferi o matrice pentru stocarea datelor despre paletă, care poate fi descrisă astfel:

P: matrice de octeți;

Procedura CreateSprite, care invocă operația de citire a unui fișier dintr-un modul nou, a fost simplificată (vezi).

Structura fișierului Bmp

Nume Lungime Părtinire Descriere
Antetul fișierului (BitMapFileHeader)
Tip2 0 Semnătura „BM”
mărimea4 2 mărime fișier
Rezervat 12 6 Rezervat
Rezervat 22 8 Rezervat
OffsetBits4 10 Deplasare imagine de la începutul fișierului
Antet informații (BitMapInfoHeader)
mărimea4 14 Lungimea antetului
Lăţime4 18 Lățimea imaginii, puncte
Înălţime4 22 Înălțimea imaginii, puncte
Avioane2 26 Numărul de avioane
BitCount2 28 Adâncimea culorii, biți pe punct
Comprimare4 30 Tip de compresie (0 - imagine necomprimată)
SizeImage4 34 Dimensiunea imaginii, octeți
XpelsPerMeter4 38 Rezoluție orizontală, puncte pe metru
YpelsPerMeter4 42 Rezoluție verticală, puncte pe metru
Culori Folosite4 46 Numărul de culori utilizate (0 este maximul posibil pentru o anumită adâncime de culoare)
CuloriImportant4 50 Numărul de culori primare
Tabel de culori (paletă)
ColorTable1024 54 256 elemente de 4 octeți
Date imagine (Matrice BitMap)
Imaginemărimea1078 Imagine înregistrată în rânduri de la stânga la dreapta și de jos în sus

Listarea 1

unitate bmpread; (proceduri pentru lucrul cu Bmp) tip de interfață artype = arrayof byte; arptr = ^artype; bmFileHeader = înregistrare (antet fișier) Typf: cuvânt; (semnătură ) Mărime: longint; (lungimea fișierului în octeți) Res1: cuvânt; (rezervat) Res2: cuvânt; (rezervat) OfBm: longint; (offset imagine în octeți (1078)) final; bmInfoHeader = înregistrare (antet informații) Dimensiune: longint; (lungimea antetului în octeți (40)) Widt: longint; (lățimea imaginii (în pixeli)) Înălțime: lung; (înălțimea imaginii (în pixeli)) Plan: cuvânt; (număr de avioane (1)) BitC: cuvânt; (adâncimea culorii (biți pe punct) (8)) Comp: longint; (tip de compresie (0 - nu)) SizI: longint; (dimensiunea imaginii în octeți) XppM: longint; (rezoluție orizontală) ((puncte pe metru - de obicei 0)) YppM: longint; (rezoluție verticală) ((puncte pe metru - de obicei 0)) NCoL: longint; (număr de culori) ((dacă maximul permis este 0)) NCoI: longint; (număr de culori primare) end; bmHeader = înregistrare (antetul complet al fișierului) f: bmFileHeader; (antetul fișierului) i: bmInfoHeader; (antetul informației) p: arrayof byte; (tabel de palete) final; bmhptr = ^bmHeader; (citirea unei imagini dintr-un fișier Bmp) procedura ReadBMP(image:arptr; (matrice cu imagine) xim,yim:word; (dimensiuni) pal:arptr; (palette) filename:string); (nume fișier) (citește antetul fișierului Bmp) procedură ReadBMPheader(header:bmhptr;filename:string); implementare ($R-) (citirea unei imagini dintr-un fișier Bmp) procedura ReadBMP(image:arptr; xim,yim:word; pal:arptr; filename:string); var h: bmHeader; i:întreg; bmpfile: fișier; s: longint; start assign(bmpfile,filename); resetare(bmpfile,1); blockread(bmpfile,h,sizeof(h)); (citire antet) pentru i:= 0 la yim-1 do begin (citire linie cu linie) blockread(bmpfile,image^[(yim-i-1)*xim],xim); dacă (xim mod 4)<>0 apoi blockread(bmpfile,s,4 - (xim mod 4)); Sfârşit; close(bmpfile); pentru i ^= 0 to 255 do begin (transformarea paletei) pal^ := h.p shr 2; (albastru) pal^ := h.p shr 2; (verde) pal^ := h.p shr 2; (roșu) capăt; Sfârşit; (citirea antetului unui fișier Bmp) procedura ReadBMPheader(header:bmhptr;filename:string); var bmpfile:file; start assign(bmpfile,filename); resetare(bmpfile,1); blockread(bmpfile,header^,sizeof(header^)); close(bmpfile); Sfârşit; Sfârşit.

Lista 2

( sprite) procedura CreateSprite(s:string; x,y,dx,dy:integer); var f: dosar; (fișier cu imaginea sprite) begin getmem(Sprt.Img,sizeof(SpriteArrayType)); (alocați memorie pentru sprite) getmem(Sprt.Back,sizeof(SpriteArrayType)); (alocați memorie pentru buffer) Readbmp(@(Sprt.Img^),Xsize,Ysize,@p,s); Sprt.x:= x; Sprt.y:=y; (setează valorile inițiale) Sprt.dx:= dx; (coordonate și incremente) Sprt.dy:= dy; Sfârşit;

În lecția de astăzi ne vom uita la primul format de fișier de pe calea noastră. Diferite formate de fișiere sunt concepute pentru a stoca informații diferite. Fiecare format specifică o modalitate de organizare a datelor într-un fișier.

Vom cunoaște multe formate de fișiere diferite: imagini, modele tridimensionale, fișiere audio, fișiere video. Să începem cu unul dintre cele mai simple formate grafice - BMP.

BMP - bitmap - bitmap. Conceptul de „mapping” este preluat din matematică. În matematică, o mapare este foarte apropiată de conceptul de funcție. Pentru simplitate, considerați cuvântul bitmap ca fiind o imagine (chiar dacă nu este).

Informații despre fișierul BMP

Fiecare fișier bitmap are un antet de 14 octeți. Câmpuri pentru acest antet:

2 octeți. șir BM (pe Windows).
4 octeți. Dimensiunea fișierului în octeți.

2 octeți. Câmp rezervat. Trebuie inițializat la zero.
4 octeți. Adresa de la care începe imaginea în sine. Sau cu alte cuvinte - o compensare față de începutul imaginii.

Să creăm o imagine de 100x100 pixeli. Fiecare pixel ocupă 32 de biți. Antetul fișierului va arăta astfel:

B.M.
14+40+100*100*4
0
0
14+40

Notă importantă: aceste numere sunt de fapt stocate ca o secvență de octeți. Sper că acest lucru este clar. Aici (și în exemplul următor) le-am aranjat într-o coloană pentru a ușura percepția.

Să ne ocupăm de al doilea domeniu. 14 - dimensiunea antetului fișierului. 40 este dimensiunea titlului imaginii (mai multe despre el mai jos), 100*100 este numărul de pixeli. Și în plus, deoarece am convenit că fiecare pixel va ocupa 32 de biți (4 octeți), trebuie să înmulțim numărul de pixeli cu patru.

Ultimul câmp: imaginea în sine începe imediat după antetul fișierului (14 octeți) și antetul imaginii (40 octeți).

Informații despre imagine BMP (antet imagine)

Există mai multe versiuni de BMP. Puteți determina versiunea după dimensiunea titlului imaginii. Vom folosi versiunea Windows V3, care ocupă 40 de octeți. Alte versiuni au 12, 64, 108, 124 de octeți.

În WinAPI, structura BITMAPINFOHEADER este utilizată pentru a stoca versiunea bmp a Windows V3.

Câmpuri de antet Windows V3:

4 octeți. Dimensiunea antetului. Întotdeauna setat la 40 de octeți.
4 octeți. Lățimea imaginii în pixeli.
4 octeți. Înălțimea imaginii în pixeli.
2 octeți. Acest câmp conține întotdeauna unul.
2 octeți. Adâncimea culorii este numărul de biți dintr-un pixel.
4 octeți. Metoda de compresie.
4 octeți. Marimea imaginii. Mărimea imaginii în sine este indicată aici - fără a ține cont de dimensiunea antetelor.
4 octeți. Rezoluție orizontală în pixeli pe metru (numărul de pixeli dintr-un metru).
4 octeți. Rezoluție verticală în pixeli pe metru (numărul de pixeli dintr-un metru).
4 octeți. Numărul de culori din paletă.
4 octeți. Numărul de culori importante din paletă.

Acum să vedem cum va arăta titlul imaginii în cazul nostru:

40
100
100
1
32
0
100*100*4
2795
2795
0
0

Pentru metoda de compresie, am ales 0 - fără compresie. Alte valori sunt posibile. Printre cele interesante: BI_JPEG (valoare - 4) - compresie folosită în imaginile jpeg și BI_PNG (valoare - 5) - compresie folosită în imaginile png.

Setăm rezoluția orizontală și verticală la 2795. În majoritatea editorilor de grafică, atunci când creați o imagine, rezoluția este setată la 71 pixeli pe inch (ppi - pixel pe inch)). Deci, 71ppi este 2795 pixeli pe metru. Rezoluția este folosită pentru a da lungimea fizică a imaginii (de exemplu, pentru ieșire către o imprimantă).

După titluri există o paletă de culori. Dacă nu este acolo, atunci imaginea începe imediat după titluri. Nu vom lua în considerare imaginile cu palete deocamdată.

Date de imagine BMP

O imagine este formată din pixeli. Formatul pixelilor este determinat de adâncimea culorii (vezi mai sus). În exemplul nostru am folosit 32 de biți pe pixel. Culoarea pe 32 de biți constă de obicei din patru canale: alfa (transparență), roșu, verde, albastru: ARGB (Alpha, Red, Green, Blue). Uneori, canalul alfa nu este utilizat, caz în care imaginea poate ocupa totuși 32 de biți, doar când calculează, nu acordă atenție valorilor unui canal. În acest caz, numele canalelor sunt scrise după cum urmează: XRGB.

Fiecare canal ocupă 8 biți (1 octet) și poate lua 256 de valori: de la zero la 255 (0x00 la 0xff).

În bmp, imaginea este stocată linie cu linie de jos în sus, adică. Liniile de jos sunt scrise mai întâi, apoi cele de sus. Asigurați-vă de acest lucru: încărcați una dintre imaginile de la primul exercițiu și salvați doar jumătate din liniile acelei imagini într-un alt fișier.

La o adâncime de culoare de 32 de biți, canalele în bmp sunt scrise după cum urmează: BGRA. În această ordine: albastru, verde, roșu, alfa.

Dimensiunea liniei de date din imaginea bmp trebuie să fie un multiplu de patru (în octeți). Dacă nu este cazul, atunci șirul este umplut cu zerouri. Acest lucru se întâmplă dacă sunt utilizați 1,2,4,8,16,24 biți pe canal. De exemplu, avem o imagine cu o lățime de 3 pixeli și folosim o culoare de 16 biți. Lățimea liniei: 16*3 = 48 (6 octeți). Dar lungimea liniei trebuie să fie un multiplu de patru, deci se adaugă încă doi octeți, iar lungimea liniei din acest exemplu va fi de opt octeți. Deși ultimii doi octeți ai fiecărei linii nu vor stoca informații utile. Este necesar să se țină cont de condiția ca dimensiunea liniei să fie un multiplu de patru atunci când se lucrează cu imagini care nu sunt pe 32 de biți.

Acum să continuăm cu exemplul nostru și să folosim codul pentru a crea o imagine. Fiecare pixel va fi inițializat cu o culoare aleatorie:

Std::ofstream os("temp.bmp", std::ios::binary); semnătură caracter nesemnat = ("B", "M"); unsigned int fileSize = 14 + 40 + 100*100*4; unsigned int rezervat = 0; unsigned int offset = 14 + 40; unsigned int headerSize = 40; unsigned int dimensiuni = ( 100, 100 ); nesemnat scurt colorPlanes = 1; bpp scurt nesemnat = 32; unsigned int compresie = 0; unsigned int imgSize = 100*100*4; unsigned int rezoluție = (2795, 2795); unsigned int pltColors = 0; unsigned int impColors = 0; os.write(reinterpret_cast (semnătură), sizeof(semnătură)); os.write(reinterpret_cast (&fileSize), sizeof(fileSize)); os.write(reinterpret_cast (&rezervat), sizeof(rezervat)); os.write(reinterpret_cast (&offset), sizeof(offset)); os.write(reinterpret_cast (&headerSize), sizeof(headerSize)); os.write(reinterpret_cast (dimensiuni), sizeof(dimensiuni)); os.write(reinterpret_cast (&colorPlanes), sizeof(colorPlanes)); os.write(reinterpret_cast (&bpp), dimensiunea(bpp)); os.write(reinterpret_cast (&compresie), dimensiunea(compresie)); os.write(reinterpret_cast (&imgSize), sizeof(imgSize)); os.write(reinterpret_cast (rezoluție), dimensiunea (rezoluție)); os.write(reinterpret_cast (&pltColors), sizeof(pltColors)); os.write(reinterpret_cast (&impColors), sizeof(impColors)); caracter nesemnat x,r,g,b; pentru (int i=0; i< dimensions; ++i) { for (int j=0; j < dimensions; ++j) { x = 0; r = rand() % 256; g = rand() % 256; b = rand() % 256; os.write(reinterpret_cast(&b),dimensiunea(b)); os.write(reinterpret_cast (&g), dimensiunea (g)); os.write(reinterpret_cast (&r),dimensiunea(r)); os.write(reinterpret_cast (&x),dimensiunea(x)); ) ) os.close();

Ca urmare a executării acestui cod, un fișier temp.bmp va fi creat în folderul cu proiectul dvs. (dacă ați rulat programul prin depanator (F5)) sau în folderul Debug al soluției (dacă ați rulat fișierul executabil .exe), care poate fi deschis în orice vizualizator de imagini. Imaginea este formată din puncte colorate.

Sunteți aici pentru că aveți un fișier care are o extensie de fișier care se termină în .bmp. Fișierele cu extensia de fișier .bmp pot fi lansate numai de anumite aplicații. Este posibil ca fișierele .bmp să fie fișiere de date și nu documente sau media , ceea ce înseamnă că nu sunt menite să fie deloc vizionate.

ce este un fișier .bmp ?

Formatul de fișier BMP este compus dintr-un set de specificații de codificare a imaginilor implementate pentru producerea de fișiere imagine raster necomprimate. Aceste fișiere imagine bitmap sunt atașate cu anteturi de fișiere care includ identificatori bitmap, printre alte detalii specifice conținutului imaginii fișierelor BMP corespunzătoare. Conținutul de imagine digitală stocat într-un fișier BMP este format din pixeli dintr-o grilă dreptunghiulară. Pixelii conținuți în aceste fișiere BMP pot fi integrați cu diferite adâncimi de culoare, în funcție de anteturile fișierelor BMP. Gradienții în tonuri de gri pot fi aplicați și pe pixelii unui fișier .bmp, iar aceste fișiere .bmp pot fi exportate în formate de fișiere de imagine digitale mai utilizate pe scară largă, cu dimensiuni mai mici pentru o portabilitate optimă.

cum se deschide un fișier .bmp?

Lansați un fișier .bmp sau orice alt fișier de pe computer, făcând dublu clic pe el. Dacă asociațiile dvs. de fișiere sunt configurate corect, aplicația care este menită să vă deschidă fișierul .bmp o va deschide. Este posibil să aveți nevoie să descărcați sau să cumpărați aplicația corectă. De asemenea, este posibil să aveți aplicația corectă pe computer, dar fișierele .bmp nu sunt încă asociate cu aceasta. În acest caz, când încercați să deschideți un fișier .bmp, puteți spune Windows care aplicație este cea corectă pentru acel fișier. De atunci, deschiderea unui fișier .bmp va deschide aplicația corectă.

aplicații care deschid un fișier .bmp

Adobe Photoshop CS6 pentru Microsoft Windows

Adobe Photoshop CS6 pentru Microsoft Windows este un software de editare și gestionare a imaginilor descărcabil pe computerele Windows și anume Windows 7 (fără SP și cu SP1) și Windows XP cu SP3. Acest software vine cu noi funcții și instrumente pentru editarea simplă, rapidă, distractivă și avansată a imaginilor digitale. O caracteristică care face ca acest program să fie fiabil pentru editarea imaginilor este Adobe Mercury Graphics Engine, care este o tehnologie de motor care oferă performanțe mai rapide și de înaltă calitate. Instrumentele care țin cont de conținut sunt funcții noi concepute pentru retușarea imaginilor cu ușurință, deoarece puteți decupa imaginile fără niciun efect, puteți corecta automat neclaritatea sau curbura lentilelor cu unghi larg, puteți elimina ochii roșii și puteți regla echilibrul culorilor, cum ar fi luminozitatea și contrastul. Acest editor de imagini este, de asemenea, împreună cu funcția de recuperare automată care poate face backup oricăror imagini nesalvate, opțiunea de salvare în fundal, Galeria de estompare, instrumentul de decupare, crearea de videoclipuri și multe altele. Cu toate aceste noi funcții îmbunătățite și o interfață modernă și ușor de utilizat, editarea fotografiilor digitale nu poate fi niciodată atât de distractivă și ușoară fără Photoshop CS6.

Adobe Photoshop CS6 pentru Mac

Adobe Photoshop CS6 pentru Mac

Adobe Photoshop CS6 pentru Mac este versiunea software-ului de gestionare a imaginilor „Creative Suite” concepută exclusiv pentru computerele Mac, în special pentru Mac OS X v10.6 până la 10.7 pe 64 de biți. Acest program de editare a imaginilor este împachetat cu un nou set de caracteristici și instrumente, cum ar fi Motorul grafic Mercury dezvoltat de aceeași companie pentru performanță de îmbunătățire rapidă și de înaltă calitate a imaginii, funcții care țin cont de conținut, instrumente intuitive reimaginate pentru proiectarea filmelor, fluxuri de lucru , Galeria estompare, instrumentul Decupare și multe altele. Adobe Mercury Graphics Engine funcționează într-un mod care face ca sarcina de editare să fie ușor și rapid de finalizat. Acest lucru permite, de asemenea, partajarea și migrarea imaginilor cu opțiuni de recuperare automată și Salvare în fundal. Noile instrumente Content-Aware sunt create pentru o modalitate ușoară și controlabilă de retușare sau îmbunătățire a imaginilor care au ca rezultat o rezultate mai satisfăcute. Practic, permite oricărui utilizator să corecteze automat imaginile, să le decupeze și să corecteze curbura lentilelor cu unghi larg.

ACD Systems Canvas 14

ACD Systems Canvas 14

ACD Systems International Inc. este dezvoltatorul ACD Systems Canvas 14, care este un software de soluție grafică tehnică, care permite utilizatorilor să analizeze datele, să îmbunătățească grafica și să partajeze toate informațiile cu ușurință și rapiditate. Acest program este conceput cu instrumente complete care ajută utilizatorii să realizeze grafice tehnice și ilustrații cu acuratețe. Constă în instrumente de editare care variază de la editarea imaginilor la instrumente de ilustrare a obiectelor. Orice rezultate create de acest program fac prezentări bune pentru proiecte, propuneri și alte scopuri pentru orice linie de afaceri legată de grafică și inginerie. Mai multe despre funcții, utilizatorii pot lucra cu imagini raster și grafice vectoriale folosind același fișier cu opțiunea de editare prin redimensionarea și scalarea obiectelor, desenarea formelor, precum și inserarea cernelurilor sau a lățimii de contur și umplere. Există, de asemenea, un instrument pentru adăugarea de texte sau etichete și dimensiuni de format, plus crearea de diagrame. Cu acest program, utilizatorii pot partaja proiectele finalizate prin prezentări sau publicații.

Sisteme ACD ACDSvezi 15

Sisteme ACD ACDSvezi 15

ACD Systems ACDSee 15 este un software de fotografie care include un organizator de imagini, vizualizator și un program RAW/editor de imagini pentru Microsoft Windows și Mac OS X 10.6 (Windows XP cu Service Pack 2, Vista, 7 & 8; Mac OS X 10.5, 10.6 , 10,7 și Mountain Lion). A fost dezvoltat de ACD Systems International, Inc. și distribuită inițial ca o aplicație pe 16 biți, care a fost ulterior actualizată cu o versiune pe 32 de biți. Această cerință hardware minimă pentru această aplicație este un procesor Intel Pentium III/AMD Athlon sau echivalent cu 512 MB RAM (cu 310 MB spațiu liber pe hard disk), un adaptor pentru afișaj color înalt la rezoluție 1024 x 768 și un inscripționare CD/DVD. ACDSee gestionează și acceptă fișiere video și audio în formate care includ GIF, BMP, JPG, PNG, MP3, PSD, WAV, MPEG și TIFF. Utilizatorii pot vizualiza, edita, adăuga efecte și pot organiza colecții de fotografii și videoclipuri care pot fi partajate online. Fotografiile pot fi organizate deoarece acestea sunt importate de pe cameră sau alt dispozitiv de stocare. De asemenea, oferă suport pentru vizualizarea hărții și etichetarea geografică, care le permit utilizatorilor să vadă locația imaginilor de la camerele compatibile cu GPS. Caracteristici precum navigarea rapidă, scanarea, editarea și opțiunile de backup facilitează sortarea fotografiilor după dată și eveniment și stocarea copiilor de rezervă pe CD, DVD și Blu-Ray.

Închide