Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » grafica design
Formatul GIF

Formatul GIF


Formatul GIF

GIF, este acronimul de la Graphics Interchange Format, care este un format grafic, creat de CompuServe.

Fisierele GIF, sunt folosite in primul rand pentru a stoca mai multe imagini, care sunt afisate una dupa alta. Este desigur unul dintre cele mai cunoscute formate pentru fisiere de imagini: GIF utilizeaza un algoritm de compresie LZW - denumit dupa cei care l-au creat, Lempel, Ziv si Welch. La imagini color este posibila o comprimare de 3:1, uneori se poate obtine chiar si o rata de comprimare de 5:1. Caracteristica tuturor imaginilor GIF este ca sunt reprezentate doar 256 de culori. Extensia acestor fisiere este GIF.

Codificarea LZW divizeaza informatiile de imagine. Fiecarei succesiune ii este atribuit un index, care este salvat intr-un tabel. In consecinta, informatia propriu-zisa nu este formata din puncte individuale de imagine, ci din indexurile din tabel. La prima vedere, comprimarea LZW lucreaza fara pierderi in cazul fisierelor GIF, deoarece fisierul GIF decomprimat este identic cu cel dinainte de comprimare. Problema este insa urmatoarea: fisierele GIF salveaza numai 8 biti pe punct de imagine, fapt ce micsoreaza adancimea de culoare la 256 de culori. Dar, fiind vorba despre placi grafice care pot reprezenta pana la 16 milioane de culori, aceasta adancime este prea mica.



Cu catva timp in urma, GIF a fost cel mai important format de fisier in Usenet pentru transferul de imagini color prin intermediul liniei telefonice. Insa, pentru ca Unisys a protejat compresia LZW prin patent, au existat tot mereu probleme de licenta la aplicatiile comerciale. Acest fapt si metodele moderne de comprimare care au aparut intre timp au dus la inlocuirea lui GIF cu JPEG.

Acest format este unul dintre cele mai populare formate pe Internet. Nu doar ca are o compresie excelenta in cazul imaginilor cu zone mari de aceeasi culoare, dar este de asemenea si singura optiune pentru animatie pe Web (doar daca nu doriti sa va folositi de Flash sau alte formate de animatie vectoriala, care de regula sunt costisitoare). Formatul GIF89a suporta de asemenea transparenta si interlacing.

Formatul GIF suporta maxim 256 de culori, care face acest format practic pentru orice element grafic, exceptand fotografiile. Cea mai folosita metoda de reducere a dimensiunii fisierelor GIF este reducerea numarului de culori din paleta. Este important de stiut ca GIF foloseste schema de comprimare LZW (zip) pentru a face fisierele cat mai mici cu putinta, fara a pierde din date. SE RETETAAAA!!!!

Fig 5. Imaginea GIF optimizata ocupa 1,20 KB fata de 20 KB cat ar fi ocupat ca bitmap necomprimat

Asa cum am mentionat anterior, formatul GIF suporta si transparenta. Aceasta permite designerului grafic sa schimbe portiuni din imagine in culoarea din fundalul paginii de Web, indiferent care ar fi aceasta. Aceasta inseamna ca daca amplasati un GIF cu zone de transparenta pe un fundal rosu acestea vor deveni si ele, la randul lor rosii.

Fig 6. Imaginea GIF are setat fundalul ei alb ca fiind transparent. Aceasta determina ca acele zone sa 'adopte' culoarea fundalului pe care este amplasat.

Facilitatea de interlacing a unui GIF creaza iluzia unei incarcari mai rapide. Ceea ce se intampla de fapt este ca imaginea este prezentata in browser in mai multe etape. La inceput va fi neclara si in ceata, dar pe masura ce se descarca mai multa informatie de pe server imaginea devine din ce in ce mai clara pana ce imaginea a fost descarcata complet. Este important de stiut ca GIF-urile intretesute sunt un pic mai mari decat cele neintretesute, asa incat este recomandat sa folositi intreteserea doar atunci cand este neaparata nevoie.

Imaginea GIF se clarifica din ce in ce mai mult pana este descarcata complet de pe server.

In general, fisierele GIF trebuie folosite pentru logo-uri, desene din linii si icon-uri. Evitati sa il folositi pentru imagini fotografice si elemente grafice care au zone de culoare cu gradiente continue. Cand alegeti sa folositi GIF evitati gradientele, anti-aliasing-ul acolo unde nu este nevoie, pentru a minimiza dimensiunea fisierelor.

GIF foloseste metoda LZW de compresie si are doua forme: GIF87a si GIF89a. Este suportat pe o varietate de sisteme, dar metoda de decodificare este lenta si nu suporta standardul true-color (24biti/pixel), ci doar intre 2 si 256 culori.

1.a) GIF87a

Conform specificatiilor, fisierele GIF87a permit urmatoarele:

► imagini compresate cu algoritmul LZW

► un singur fisier poate contine mai multe imagini - cadre (suport pentru animatie)

► pozitionarea imaginilor intr-o suprafata de ecran logic

► tehnica interlacing

1.b) GIF89a

Varianta GIF89a este o extensie a formatului GIF87a, oferind:

► modalitatea de a specifica timpul de asteptare intre afisarea fiecarui cadru

► transparenta

► comentarii neprintabile incluse in fisier

► afisarea unor linii de text

►interactiune cu utilizatorul

►modul de disparitie a unui anumit cadru inainte de afisarea urmatorului

►extensiile specifice aplicatiilor particulare pot fi codate in fisier

Fisierul GIF este compus din blocuri si extensii. Blocurile pot fi blocuri de control, blocuri de afisare grafica si blocuri speciale. Blocurile de control, cum ar fi Antetul, Descriptorul de ecran logic, Extensia controlului grafic si Finalul, controleaza maniera de afisare a continutului grafic. Blocurile de afisare grafica, de exemplu Descriptorul de imagini si Extensia text, contin date folosite pentru figurarea unei imagini. Blocurile speciale ca Extensia de comentarii si Extensia aplicatiei nu sunt folosite de decodoarele GIF. Descriptorul de ecran logic si Tabela globala de culori afecteaza toate imaginile incluse in fisier, pe cand fiecare bloc de control este asociat unui cadru particular:

► Antet GIF 89a (6 octeti, desemnand versiunea GIF)

► Bloc descriptor de ecran logic: poate include o tabela globala de culori (optionala): puteri ale lui 2 culori

► Bloc de extensie (aplicatie Netscape - optional)

►Sir de imagini, fiecare imagine-cadru fiind compusa din:

● Bloc de control grafic (optional)

● Descriptor de imagine sau Bloc de text


► Fiecare bloc poate contine o tabela locala de culori

► Tabela de date imagine/text

► Bloc de final

Blocurile de comentarii pot apare oriunde, fiind ignorate.

Un exemplu al structurii unui fisier de animatie (un triunghi rotitor):

Antet GIF89a
Descriptor de ecran logic
Paleta globala
Loop: bucla Netscape
Comentariu 'Creat de'
Comentariu 'Triunghi la 0 grade'
Bloc de control pentru imaginea 1
Date imagine 1
Comentariu 'Triunghi la 120 grade'
Bloc de control pentru imaginea 2
Date imagine 2
Comentariu 'Triunghi la 240 grade'
Bloc de control pentru imaginea 3
Date imagine 3
Final

Un fisier GIF, poate sa stocheze imagini pe maxim 8 biti (256 de culori), adica poate afisa simultan maxim 256 de culori dintr-o paleta de peste 16 milioane de culori. Ca si versiuni, GIF, are doua: GIF87a - versiunea GIF originala, si versiunea GIF89a, care aduce imbunatatiri vechii versiuni.

Fisierul GIF, este alcatuit dintr-un header, unul sau mai multe blocuri, si, optional, niste extensii. Formatul unui astfel de fisier, este urmatorul:

Offset

Nr.octeti

Descriere

0000h

6

ID='GIF87a' sau 'GIF89a'

0006h

2

Latimea imaginii

0008h

2

Inaltimea imaginii

000Ah

1

Camp de biti

000Bh

1

Indexul culorii de fundal

000Ch

1

Rezervat

Descrierea campurilor:

1. ID - acest camp indica un fisier GIF, unde primii trei si al 6-lea octet sunt 'GIF', respectiv 'a', iar octetii 4 si 5, indica versiunea.

2. Latimea si inaltimea imaginii - masurata in pixeli

3. Camp de biti - contine informatii despre culori, si sunt definiti astfel: ►bitii 0-2 - marimea Tabelului Global de Culori, care este numarul de biti necesari pentru o culoare din Tabelul Global de Culori -1. Adica, daca o imagine are 8 biti/pixel, acest camp va avea valoarea 7;

►bitul 3 - rezervat;

►bitii 4-6 - rezolutia unei culori;

►bitul 7 - indicator de prezenta a Tabelului Global de Culori.

Tabelul Global de Culori, urmeaza imediat dupa descrierea ecranului, si are marimea si contine culorile RGB (Red Green Blue) pentru fiecare index de culoare. Octetii, au urmatorul format:

Rosu - 1 octet
Verde - 1 octet
Albastru - 1 octet.

Tabelul Global de Culori, exista, doar daca este setat bitul 7 din Campul de biti. De obicei, Tabelul Global de Culori nu este definit, daca fiecare imagine din fisierul GIF are propriul Tabel Local de Culori. In caz ca o imagine nu are Tabel Local de Culori, va folosi culorile din Tabelul Global de Culori. Daca nici unul din cele doua tabele posibile de culori nu exista, decodorul (programul de afisare), va trebui sa-si creeze propriul Tabel de Culori.

Dupa prima imagine, pot fi mai multe imagini in fisier, care vor fi afisate una dupa alta. O imagine este separata de alta imagine prin simbolul ',' (02Ch). Fiecare imagine va avea un Antet Local, urmat eventual, de Tabelul Local de Culori. Fiecare Antet si Tabel Local, contine informatii doar despre imaginea pe care o insoteste. Antetul Local al unei imagini, are urmatorul format:

Nr.octeti

Descriere

Separator imagine=','(2Ch)

Coordonatele coltului stanga-sus

(primii 2 octeti - coordonata stanga; urmatorii doi octeti - coordonata sus)

Latime imagine

Inaltime imagine

Camp de biti

Bitii din campul de biti, au urmatoarea semnificatie:

►bitii 0-2 - numarul de biti/pixel;

►bitii 3-5 - rezervati;

►bitul 6 - imaginea este intretesuta/secventiala;

►bitul 7 - prezenta Tabelului Local de Culori. Daca valoarea acestui bit este 0, atunci se va folosi Tabela Globala de Culori si se vor ignora bitii 0-2.

Fiecare fisier GIF, se termina cu caracterul ';', avand codul hexa 3B.

Toate aceste caracteristici, apartin atat fisierelor GIF de versiune 87a cat si versiunii 89a, dar versiunea 89a, mai adauga noi blocuri suplimentare, care sunt optionale. Aceste blocuri, sunt:

■ Blocul de Control,

■ Text,

■ Comentariu si

■ Aplicatie.

Un astfel de bloc, poate fi introdus fie dupa declararea Antetului Local, fie inainte de simbolul de terminare(';'). Diferenta dintre un fisier GIF89a si un fisier GIF87a, este data doar de prezenta acestor blocuri.

Blocul de Control - poseda caracteristicile de afisare a imaginii sau textului care urmeaza dupa acest bloc. Informatia care o contine, stabileste modul de afisare (transparent sau opac), daca imaginea care este pe ecran va fi stearsa sau nu si daca se va astepta interventia utilizatorului pentru a afisa urmatoarea imagine. Antetul unui bloc de control, este urmatorul:

Nr. octeti

Descriere

ID='!'(21h)

Eticheta='.'(f9h)

Marime bloc=04h

Camp de biti

Timp de asteptare

Index transparenta

Terminator de bloc=0h

Campul de biti, are urmatoarea semnificatie:

■ bitul 0 - daca este setat, atunci Index transparenta, contine o valoare valida pentru culoarea transparenta, altfel nu se citeste Indexul de transparenta;

■ bitul 1 - daca este setat, se va astepta apasarea unei taste, a unui click, pentru a se afisa urmatoarea imagine din fisier;

■ bitii 2-4 - indica metoda de afisare, unde cei doi biti pot lua valorile:

0 - cand nu este specificata nici o metoda;

1 - afiseaza aceasta imagine peste cea anterioara;

2 - se sterge imaginea anterioara cu culoarea de fond;

3 - imaginea se va afisa sub imaginea anterioara;

■ bitii 5-7 - rezervati.

Timpul de asteptare, indica sutimile de secunda cat trebuie asteptat pentru ca urmatoarea imagine sa fie afisata. In caz ca este setat si primul bit din campul de biti (se asteapta apasarea unei taste, etc.), imaginea viitoare va fi afisata fie cand expira timpul fie cand intervine utilizatorul.

Blocul de text este folosit pentru a reprezenta textul nu ca imagini ci, pur si simplu, ca text. Lucrul acesta, este efectuat prin crearea unui 'grilaj', format din linii verticale si orizontale, in fiecare 'ochi' al 'grilajului', reprezentandu-se cate un simbol. Culorile de fond si cea de desenare a textului, sunt luate din Tabela de Culori Globale. Antetul unui astfel de bloc, este:

Nr. Octeti

Descriere

ID='!'(21h)

Eticheta=01h

Marime bloc=0ch

Coordonatele coltului stanga-sus (primii 2 octeti - coordonata stanga;
urmatorii doi octeti - coordonata sus)

Latimea textului

Inaltimea textului

Latimea unui caracter

Inaltimea unui rand

Index la culoarea textului

Index la culoarea fontului

Text

Terminator de bloc=0h

Latime/inaltime text, latime/inaltime caracter/rand, toate sunt exprimate in pixeli. Text, este textul care va fi afisat, nearhivat.

Blocul aplicatie este destinat programelor care afiseaza fisiere GIF, nu utilizatorului. Antetul acestui bloc, este:

Nr. de octeti

Descriere

ID='!'(21h)

Eticheta=FFh

Marime bloc=0Bh

Identificatorul aplicatiei

Codul de identificare al aplicatiei

Indicator la sub-blocurile aplicatiei

Terminator de bloc=0h

Identificatorul aplicatiei, poate contine pana la 8 caractere ASCII standard (pe 7 biti, nu 8). Daca Identificatorul aplicatiei este recunoscut de programul care citeste fisierul GIF, atunci sub-blocurile aplicatiei sunt citite si datele interpretate; in caz ca acest indicator nu este recunoscut, se va sari peste acest bloc.

Codul de identificare, este o valoare care identifica aplicatia din bloc. Poate fi o serie, un cod ASCII, o versiune, care sa individualizeze in mod unic o aplicatie.
Indicator la sub-blocurile aplicatiei, contine codul aplicatiei, care trebuie sa fie descifrabil de programul care citeste fisierul.

Blocul comentariu - contine comentarii referitoare la fisier. Textul care apare ca si comentariu, nu va fi afisat odata cu imaginea, dar va putea fi citit de programe separat. Antetul unui astfel de bloc, este:

 Nr. Octeti

Descriere

1

ID='!'(21h)

1

Eticheta=FEh

1

Indicator la sub-blocurile de comentarii

1

Terminator de bloc=0h

Gif-ul este unul din cele doua tipuri de grafice web utilizate in mod deosebit in prezent. Celalalt este JPEG-ul. Potrivit metodelor diferite de folosire aceste doua formate de fisier utilizeaza comprimarea de date, si sunt adaptate la diferite tipuri de imagini; JPEG-urile sunt bune pentru imagini cu gradatii subtile de tonuri, cum sunt fotografiile iar GIF-urile sunt potrivite pentru imagini unde avem de-a face cu suprafete de culoare extinse (de exemplu acolo unde culoarea este constanta, cu relative schimbari precise intre culori). Deoarece publicitatea se bazeaza in mod frecvent pe design-uri clare, patrunzatoare, GIF-ul a devenit norma de utilizare pentru ads banner. Si sa nu uitam ca spre deosebire de JPEG, GIF-ul se poate misca!

GIF-urile (la fel ca si JPEG, TIFF, BMP -uri sau inca multe altele) sunt cunoscute ca fiind formate de grafica bitmapped. Aceasta inseamna ca ele descriu imagini in coordonatele unei grile de puncte sau pixeli. Numarul de puncte pe Inch ( dpi ) reprezinta rezolutia imaginii. Cand se tipareste o imagine, o rezolutie mai mare inseamna o imagine mai clara, mai exacta (300 dpi este rezolutia standard de tiparire). Cu toate acestea, monitoarele computerelor afiseaza totul la rezolutii relativ mici (monitoarele PC la 96 dpi, monitoarele MAc la 72 dpi ). Orice rezolutie mai mare decat aceasta este o inutila risipa de spatiu cu extra informatie care nu poate fi afisata - si care ingreuneaza in mod deosebit descarcarea paginii. 

Compresia utilizata de GIF-uri este cunoscuta ca si compresie fara pierderi - informatia este pe deplin compatibila in procesul compresie-decompresie. Cand se salveaza o imagine ca GIF, se ofera optiunea de a o salva cu transparenta si/sau de a o face impletita (interlaced). Transparenta permite specificarea unei singure culori a imaginii care apare ca fiind transparenta, vazandu-se fundalul prin ea. Gif-urile impletite arata o versiune voalata a imaginii care se descarca, asa ca oamenii au o parare nu tocmai placuta despre o imagine mare fata de care nu au rabdarea sa se descarce in mod integral.

Fisierele GIF au fost concepute sa permita animatia - pot contine o serie de cadre diferite care atunci cand sunt insirate impreuna, creeaza efecte de miscare. In functie de gusturile fiecaruia, GIF-urile animate pot fi la fel de bine de inspiratie divina sau cele mai suparatoare lucruri care fac ca cel ce le priveste sa se simta lovit in moalele capului.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.