Greutatea și optimizarea fișierelor grafice
02 februarie 2005

Greutate și optimizare. Vă explicăm cum să calculați greutatea unui fișier grafic și, de asemenea, cum să reduceți dimensiunea în octeți a unui fișier grafic. Exemple de tehnici utilizate pentru optimizarea greutății imaginilor.
În acest articol vom aborda câteva aspecte fundamentale pe care trebuie să le luăm în considerare atunci când lucrăm cu fișiere grafice în general și cu bitmaps în special. Este vorba despre controlul greutății fișierelor, astfel încât acestea să poată ocupa mai puțin spațiu și, prin urmare, să fie transferate mai repede.
Este o chestiune de o importanță vitală pe web și la DesarrolloWeb.com am abordat această problemă de mai multe ori. În acest manual de design web îl veți găsi dintr-o abordare mai teoretică, dar de cunoștințe fundamentale pentru toți cei care sunt dedicați designului web.
Vom începe prin a vorbi despre greutatea fișierelor și apoi vom vedea în ce moduri pot fi optimizate.
Greutatea fișierelor grafice
Bitmap-urile pot fi definite într-un număr variabil de culori. Ca regulă generală, cu cât imaginea are mai multe culori, cu atât va avea o calitate mai mare, deși această regulă depinde foarte mult de imaginea în sine.
De exemplu, o literă neagră pe un fundal alb (adâncime de culoare de 1 bit), formată din linii drepte orizontale și verticale, va avea nevoie doar ca aceste două culori să fie afișate corect, chiar dacă le mărim dimensiunea (rezoluția).
Dacă lucrăm cu o adâncime de culoare de 8 biți vom avea 256 de culori posibile pentru fiecare pixel (în cazul icoanelor sau ilustrațiilor în format GIF, de exemplu) și dacă mărim adâncimea la 24 de biți vom avea milioane de culori pentru fiecare pixel al imaginii (de exemplu, fotografii în format JPG sau PNG).
De asemenea, putem defini diferite rezoluții pentru o imagine. Cu cât rezoluția este mai mare, cu atât imaginea va forma mai mulți pixeli, cu atât mai multe date de informație va avea nevoie și, prin urmare, cu atât este mai mare dimensiunea fișierului rezultat.
Prin urmare, cu cât o imagine are mai multe culori și cu cât rezoluția este mai mare, cu atât este mai mare greutatea fișierului necesar pentru a o stoca.
În formula de mai sus, lățimea și înălțimea sunt date în inci, rezoluția în pixeli pe inci și adâncimea culorii în octeți.
Pentru o imagine de 3 x 2 inci la o rezoluție de 72 dpi și cu o adâncime de culoare de 8 biți, de exemplu, vom avea:
Dimensiunea fișierului = [[(3 x 72) x (2 x 72)] x 8]/8 = 31104 octeți = 31 Kb
Dacă dimensiunile imaginii sunt în centimetri, împărțiți-le la 2,54. Astfel, o imagine de 1 x 1 inch la o rezoluție de 300 dpi și cu o adâncime de culoare de 24 de biți (culoare adevărată) va avea o greutate de: conține un total de 90.000 de pixeli.
Dimensiunea fișierului = [[(1 x 300)/2,54 x (1 x 300)/2,54] x 24]/8 = 41850 octeți = 419 Kb
Dacă lucrăm direct cu pixeli (captură cu o cameră digitală, de exemplu), va fi suficient să înmulțim dimensiunile imaginii între ele și cu adâncimea culorii în biți pentru a determina cantitatea de biți prezenți într-un fișier imagine, și împărțind rezultatul între 8, vom avea greutatea fișierului în octeți.
După cum putem vedea, greutățile obținute sunt foarte mari, mai ales în cazul imaginilor destinate internetului, unde lățimea de bandă este o resursă limitată.
Optimizarea fișierelor grafice
În general, fișierele de imagine bitmap trebuie să stocheze o mulțime de informații grafice, ceea ce face ca greutatea lor finală în octeți să fie excesivă, atât pentru tipărire (dacă imaginea este foarte mare, procesul de imprimare poate dura mult timp), cât și pentru transferul său pe internet, mediu în care lățimea de bandă este foarte limitată.
Pentru a minimiza greutatea fișierelor grafice, au fost dezvoltate diferite tehnici de optimizare bazate pe două principii diferite:
- Reduceți numărul de culori utilizate în imagine.
- Comprimă datele imaginii pentru a ocupa mai puțin spațiu.
Reducerea culorii (dithering)
Principiul ditheringului se bazează pe reducerea numărului de culori utilizate într-o imagine, având în vedere că, în majoritatea cazurilor, sunt utilizate prea multe informații grafice într-un fișier, informații care pot fi eliminate fără pierderi notabile în calitatea finală a imaginii.
Dacă o anumită imagine folosește doar 40 de culori, pentru a reduce dimensiunea fișierului său, ar fi suficient să definiți cele 40 de culori folosind o paletă de culori, apoi salvați punctele imaginii cu o adâncime de 8 biți.
Pe de altă parte, o imagine care folosește 256 de culori poate avea o calitate acceptabilă în raport cu aceeași imagine cu 16,8 milioane de culori, având o dimensiune de trei ori mai mică. Pentru a obține o culoare care nu este prezentă în paleta de 256 de culori a imaginii, este întotdeauna posibil să se amestece cele care sunt, obținând în majoritatea cazurilor o apropiere bună față de cea necesară.
Tehnica de dithering va fi însărcinată cu calcularea proporției cu care culorile paletei trebuie amestecate pentru a obține altele.
Pentru a obține un anumit ton de culoare, se utilizează mai multe puncte care au o culoare foarte apropiată de cea care se dorește a fi atinsă. Când vizualizați imaginea de la o anumită distanță, culoarea punctelor adiacente este amestecată, dând naștere iluziei unor noi nuanțe de culoare.
Acest sistem de optimizare prin reducerea culorilor este utilizat de exemplu în format GIF.
Reducerea datelor (compresie)
Compresia este o tehnică care permite reducerea dimensiunii unui fișier prin procese matematice, facilitând astfel transferul lor prin rețea sau stocarea lor pe orice alt suport.